Skip to content

Commit 1b025e5

Browse files
committed
Key-Book: added tests
1 parent 4e53327 commit 1b025e5

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

tests/core/peer/test_peerdata.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
from libp2p.crypto.secp256k1 import (
77
create_new_key_pair,
88
)
9+
from libp2p.peer.id import ID
910
from libp2p.peer.peerdata import (
1011
PeerData,
1112
PeerDataError,
1213
)
14+
from libp2p.peer.peerstore import PeerStore
1315

1416
MOCK_ADDR = Multiaddr("/ip4/127.0.0.1/tcp/4001")
1517
MOCK_KEYPAIR = create_new_key_pair()
@@ -60,6 +62,7 @@ def test_supports_protocols():
6062
assert supported == ["protocol1", "protocol2"]
6163

6264

65+
# Test case for first supported protocol is found
6366
def test_first_supported_protocol_found():
6467
peer_data = PeerData()
6568
peer_data.set_protocols(["protocolA", "protocolB"])
@@ -70,6 +73,7 @@ def test_first_supported_protocol_found():
7073
assert first == "protocolB"
7174

7275

76+
# Test case for first supported protocol not found
7377
def test_first_supported_protocol_none():
7478
peer_data = PeerData()
7579
peer_data.set_protocols(["protocolX", "protocolY"])
@@ -80,6 +84,7 @@ def test_first_supported_protocol_none():
8084
assert first == "None supported"
8185

8286

87+
# Test case for clearing protocol data
8388
def test_clear_protocol_data():
8489
peer_data = PeerData()
8590
peer_data.set_protocols(["proto1", "proto2"])
@@ -159,6 +164,42 @@ def test_get_privkey_not_found():
159164
peer_data.get_privkey()
160165

161166

167+
# Test case for returning all the peers with stored keys
168+
def test_peer_with_keys():
169+
peer_store = PeerStore()
170+
peer_id_1 = ID(b"peer1")
171+
peer_id_2 = ID(b"peer2")
172+
173+
peer_data_1 = PeerData()
174+
peer_data_2 = PeerData()
175+
176+
peer_data_1.pubkey = MOCK_PUBKEY
177+
peer_data_2.pubkey = None
178+
179+
peer_store.peer_data_map = {
180+
peer_id_1: peer_data_1,
181+
peer_id_2: peer_data_2,
182+
}
183+
184+
assert peer_store.peer_with_keys() == [peer_id_1]
185+
186+
187+
# Test case for clearing the key book
188+
def test_clear_keydata():
189+
peer_store = PeerStore()
190+
peer_id = ID(b"peer123")
191+
peer_data = PeerData()
192+
193+
peer_data.pubkey = MOCK_PUBKEY
194+
peer_data.privkey = MOCK_PRIVKEY
195+
peer_store.peer_data_map = {peer_id: peer_data}
196+
197+
peer_store.clear_keydata(peer_id)
198+
199+
assert peer_data.pubkey is None
200+
assert peer_data.privkey is None
201+
202+
162203
# Test case for recording latency for the first time
163204
def test_record_latency_initial():
164205
peer_data = PeerData()

0 commit comments

Comments
 (0)