mirror of https://github.com/libp2p/py-libp2p.git
Alex Haynes
6 years ago
committed by
GitHub
11 changed files with 221 additions and 28 deletions
@ -0,0 +1,59 @@ |
|||||
|
import pytest |
||||
|
|
||||
|
from peer.peerstore import PeerStoreError |
||||
|
from peer.peerstore import PeerStore |
||||
|
|
||||
|
# Testing methods from IAddrBook base class. |
||||
|
|
||||
|
|
||||
|
def test_addrs_empty(): |
||||
|
with pytest.raises(PeerStoreError): |
||||
|
store = PeerStore() |
||||
|
val = store.addrs("peer") |
||||
|
assert not val |
||||
|
|
||||
|
|
||||
|
def test_add_addr_single(): |
||||
|
store = PeerStore() |
||||
|
store.add_addr("peer1", "/foo", 10) |
||||
|
store.add_addr("peer1", "/bar", 10) |
||||
|
store.add_addr("peer2", "/baz", 10) |
||||
|
|
||||
|
assert store.addrs("peer1") == ["/foo", "/bar"] |
||||
|
assert store.addrs("peer2") == ["/baz"] |
||||
|
|
||||
|
|
||||
|
def test_add_addrs_multiple(): |
||||
|
store = PeerStore() |
||||
|
store.add_addrs("peer1", ["/foo1", "/bar1"], 10) |
||||
|
store.add_addrs("peer2", ["/foo2"], 10) |
||||
|
|
||||
|
assert store.addrs("peer1") == ["/foo1", "/bar1"] |
||||
|
assert store.addrs("peer2") == ["/foo2"] |
||||
|
|
||||
|
|
||||
|
def test_clear_addrs(): |
||||
|
store = PeerStore() |
||||
|
store.add_addrs("peer1", ["/foo1", "/bar1"], 10) |
||||
|
store.add_addrs("peer2", ["/foo2"], 10) |
||||
|
store.clear_addrs("peer1") |
||||
|
|
||||
|
assert store.addrs("peer1") == [] |
||||
|
assert store.addrs("peer2") == ["/foo2"] |
||||
|
|
||||
|
store.add_addrs("peer1", ["/foo1", "/bar1"], 10) |
||||
|
|
||||
|
assert store.addrs("peer1") == ["/foo1", "/bar1"] |
||||
|
|
||||
|
|
||||
|
def test_peers_with_addrs(): |
||||
|
store = PeerStore() |
||||
|
store.add_addrs("peer1", [], 10) |
||||
|
store.add_addrs("peer2", ["/foo"], 10) |
||||
|
store.add_addrs("peer3", ["/bar"], 10) |
||||
|
|
||||
|
assert set(store.peers_with_addrs()) == set(["peer2", "peer3"]) |
||||
|
|
||||
|
store.clear_addrs("peer2") |
||||
|
|
||||
|
assert set(store.peers_with_addrs()) == set(["peer3"]) |
@ -0,0 +1,44 @@ |
|||||
|
import pytest |
||||
|
|
||||
|
from peer.peerstore import PeerStoreError |
||||
|
from peer.peerstore import PeerStore |
||||
|
|
||||
|
# Testing methods from IPeerMetadata base class. |
||||
|
|
||||
|
|
||||
|
def test_get_empty(): |
||||
|
with pytest.raises(PeerStoreError): |
||||
|
store = PeerStore() |
||||
|
val = store.get("peer", "key") |
||||
|
assert not val |
||||
|
|
||||
|
|
||||
|
def test_put_get_simple(): |
||||
|
store = PeerStore() |
||||
|
store.put("peer", "key", "val") |
||||
|
assert store.get("peer", "key") == "val" |
||||
|
|
||||
|
|
||||
|
def test_put_get_update(): |
||||
|
store = PeerStore() |
||||
|
store.put("peer", "key1", "val1") |
||||
|
store.put("peer", "key2", "val2") |
||||
|
store.put("peer", "key2", "new val2") |
||||
|
|
||||
|
assert store.get("peer", "key1") == "val1" |
||||
|
assert store.get("peer", "key2") == "new val2" |
||||
|
|
||||
|
|
||||
|
def test_put_get_two_peers(): |
||||
|
store = PeerStore() |
||||
|
store.put("peer1", "key1", "val1") |
||||
|
store.put("peer2", "key1", "val1 prime") |
||||
|
|
||||
|
assert store.get("peer1", "key1") == "val1" |
||||
|
assert store.get("peer2", "key1") == "val1 prime" |
||||
|
|
||||
|
# Try update |
||||
|
store.put("peer2", "key1", "new val1") |
||||
|
|
||||
|
assert store.get("peer1", "key1") == "val1" |
||||
|
assert store.get("peer2", "key1") == "new val1" |
@ -0,0 +1,61 @@ |
|||||
|
import pytest |
||||
|
|
||||
|
from peer.peerstore import PeerStoreError |
||||
|
from peer.peerstore import PeerStore |
||||
|
|
||||
|
# Testing methods from IPeerStore base class. |
||||
|
|
||||
|
|
||||
|
def test_peer_info_empty(): |
||||
|
store = PeerStore() |
||||
|
info = store.peer_info("peer") |
||||
|
|
||||
|
assert not info |
||||
|
|
||||
|
|
||||
|
def test_peer_info_basic(): |
||||
|
store = PeerStore() |
||||
|
store.add_addr("peer", "/foo", 10) |
||||
|
info = store.peer_info("peer") |
||||
|
|
||||
|
assert info.peer_id == "peer" |
||||
|
assert info.addrs == ["/foo"] |
||||
|
|
||||
|
|
||||
|
def test_add_get_protocols_basic(): |
||||
|
store = PeerStore() |
||||
|
store.add_protocols("peer1", ["p1", "p2"]) |
||||
|
store.add_protocols("peer2", ["p3"]) |
||||
|
|
||||
|
assert set(store.get_protocols("peer1")) == set(["p1", "p2"]) |
||||
|
assert set(store.get_protocols("peer2")) == set(["p3"]) |
||||
|
|
||||
|
|
||||
|
def test_add_get_protocols_extend(): |
||||
|
store = PeerStore() |
||||
|
store.add_protocols("peer1", ["p1", "p2"]) |
||||
|
store.add_protocols("peer1", ["p3"]) |
||||
|
|
||||
|
assert set(store.get_protocols("peer1")) == set(["p1", "p2", "p3"]) |
||||
|
|
||||
|
|
||||
|
def test_set_protocols(): |
||||
|
store = PeerStore() |
||||
|
store.add_protocols("peer1", ["p1", "p2"]) |
||||
|
store.add_protocols("peer2", ["p3"]) |
||||
|
|
||||
|
store.set_protocols("peer1", ["p4"]) |
||||
|
store.set_protocols("peer2", []) |
||||
|
|
||||
|
assert set(store.get_protocols("peer1")) == set(["p4"]) |
||||
|
assert set(store.get_protocols("peer2")) == set([]) |
||||
|
|
||||
|
|
||||
|
# Test with methods from other Peer interfaces. |
||||
|
def test_peers(): |
||||
|
store = PeerStore() |
||||
|
store.add_protocols("peer1", []) |
||||
|
store.put("peer2", "key", "val") |
||||
|
store.add_addr("peer3", "/foo", 10) |
||||
|
|
||||
|
assert set(store.peers()) == set(["peer1", "peer2", "peer3"]) |
Loading…
Reference in new issue