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