mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2025-12-31 20:36:24 +00:00
Peer tests and minor peer features/bug fixes.
This commit is contained in:
0
tests/peer/__init__.py
Normal file
0
tests/peer/__init__.py
Normal file
59
tests/peer/test_addrbook.py
Normal file
59
tests/peer/test_addrbook.py
Normal file
@ -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"])
|
||||
44
tests/peer/test_peermetadata.py
Normal file
44
tests/peer/test_peermetadata.py
Normal file
@ -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"
|
||||
61
tests/peer/test_peerstore.py
Normal file
61
tests/peer/test_peerstore.py
Normal file
@ -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"])
|
||||
@ -3,7 +3,7 @@ import pytest
|
||||
@pytest.mark.parametrize("test_input,expected", [
|
||||
("3+5", 8),
|
||||
("2+4", 6),
|
||||
("6*9", 42),
|
||||
("6*9", 54),
|
||||
])
|
||||
def test_eval(test_input, expected):
|
||||
assert eval(test_input) == expected
|
||||
|
||||
Reference in New Issue
Block a user