refactored from unit_test to pytest

This commit is contained in:
mystical-prog
2024-11-22 01:11:36 +05:30
committed by Paul Robinson
parent edf5270425
commit f02d03844a

View File

@ -1,94 +1,106 @@
import unittest import pytest
from unittest.mock import (
MagicMock,
)
from multiaddr import ( from libp2p.crypto.secp256k1 import (
Multiaddr, create_new_key_pair,
)
from libp2p.crypto.keys import (
PrivateKey,
PublicKey,
) )
from libp2p.peer.peerdata import ( from libp2p.peer.peerdata import (
PeerData, PeerData,
PeerDataError, PeerDataError,
) )
MOCK_ADDR = "/peer"
MOCK_KEYPAIR = create_new_key_pair()
MOCK_PUBKEY = MOCK_KEYPAIR.public_key
MOCK_PRIVKEY = MOCK_KEYPAIR.private_key
class TestPeerData(unittest.TestCase):
def setUp(self):
# This will run before each test method
self.peer_data = PeerData()
self.mock_pubkey = MagicMock(PublicKey)
self.mock_privkey = MagicMock(PrivateKey)
self.mock_addr = MagicMock(Multiaddr)
def test_get_protocols_empty(self):
# Test case when no protocols have been added # Test case when no protocols have been added
self.assertEqual(self.peer_data.get_protocols(), []) def test_get_protocols_empty():
peer_data = PeerData()
assert peer_data.get_protocols() == []
def test_add_protocols(self):
# Test case when adding protocols # Test case when adding protocols
def test_add_protocols():
peer_data = PeerData()
protocols = ["protocol1", "protocol2"] protocols = ["protocol1", "protocol2"]
self.peer_data.add_protocols(protocols) peer_data.add_protocols(protocols)
self.assertEqual(self.peer_data.get_protocols(), protocols) assert peer_data.get_protocols() == protocols
def test_set_protocols(self):
# Test case when setting protocols # Test case when setting protocols
def test_set_protocols():
peer_data = PeerData()
protocols = ["protocolA", "protocolB"] protocols = ["protocolA", "protocolB"]
self.peer_data.set_protocols(protocols) peer_data.set_protocols(protocols)
self.assertEqual(self.peer_data.get_protocols(), protocols) assert peer_data.get_protocols() == protocols
def test_add_addrs(self):
# Test case when adding addresses # Test case when adding addresses
addresses = [self.mock_addr] def test_add_addrs():
self.peer_data.add_addrs(addresses) peer_data = PeerData()
self.assertEqual(self.peer_data.get_addrs(), addresses) addresses = [MOCK_ADDR]
peer_data.add_addrs(addresses)
assert peer_data.get_addrs() == addresses
def test_add_dup_addrs(self):
# Test case when adding same address more than once # Test case when adding same address more than once
addresses = [self.mock_addr, self.mock_addr] def test_add_dup_addrs():
self.peer_data.add_addrs(addresses) peer_data = PeerData()
self.peer_data.add_addrs(addresses) addresses = [MOCK_ADDR, MOCK_ADDR]
self.assertEqual(self.peer_data.get_addrs(), [self.mock_addr]) peer_data.add_addrs(addresses)
peer_data.add_addrs(addresses)
assert peer_data.get_addrs() == [MOCK_ADDR]
def test_clear_addrs(self):
# Test case for clearing addresses # Test case for clearing addresses
addresses = [self.mock_addr] def test_clear_addrs():
self.peer_data.add_addrs(addresses) peer_data = PeerData()
self.peer_data.clear_addrs() addresses = [MOCK_ADDR]
self.assertEqual(self.peer_data.get_addrs(), []) peer_data.add_addrs(addresses)
peer_data.clear_addrs()
assert peer_data.get_addrs() == []
def test_put_metadata(self):
# Test case for adding metadata # Test case for adding metadata
def test_put_metadata():
peer_data = PeerData()
key = "key1" key = "key1"
value = "value1" value = "value1"
self.peer_data.put_metadata(key, value) peer_data.put_metadata(key, value)
self.assertEqual(self.peer_data.get_metadata(key), value) assert peer_data.get_metadata(key) == value
def test_get_metadata_key_not_found(self):
# Test case for key not found in metadata # Test case for key not found in metadata
with self.assertRaises(PeerDataError): def test_get_metadata_key_not_found():
self.peer_data.get_metadata("nonexistent_key") peer_data = PeerData()
with pytest.raises(PeerDataError):
peer_data.get_metadata("nonexistent_key")
def test_add_pubkey(self):
# Test case for adding public key # Test case for adding public key
self.peer_data.add_pubkey(self.mock_pubkey) def test_add_pubkey():
self.assertEqual(self.peer_data.get_pubkey(), self.mock_pubkey) peer_data = PeerData()
peer_data.add_pubkey(MOCK_PUBKEY)
assert peer_data.get_pubkey() == MOCK_PUBKEY
def test_get_pubkey_not_found(self):
# Test case when public key is not set # Test case when public key is not set
with self.assertRaises(PeerDataError): def test_get_pubkey_not_found():
self.peer_data.get_pubkey() peer_data = PeerData()
with pytest.raises(PeerDataError):
peer_data.get_pubkey()
def test_add_privkey(self):
# Test case for adding private key # Test case for adding private key
self.peer_data.add_privkey(self.mock_privkey) def test_add_privkey():
self.assertEqual(self.peer_data.get_privkey(), self.mock_privkey) peer_data = PeerData()
peer_data.add_privkey(MOCK_PRIVKEY)
assert peer_data.get_privkey() == MOCK_PRIVKEY
def test_get_privkey_not_found(self):
# Test case when private key is not set # Test case when private key is not set
with self.assertRaises(PeerDataError): def test_get_privkey_not_found():
self.peer_data.get_privkey() peer_data = PeerData()
with pytest.raises(PeerDataError):
peer_data.get_privkey()