class NodeIDTest(unittest.TestCase): """ Test case for the Node class's ID """ def setUp(self): self.node = Node() def testAutoCreatedID(self): """ Tests if a new node has a valid node ID """ self.failUnlessEqual(type(self.node.node_id), str, 'Node does not have a valid ID') self.failUnlessEqual( len(self.node.node_id), 48, 'Node ID length is incorrect! ' 'Expected 384 bits, got %d bits.' % (len(self.node.node_id) * 8)) def testUniqueness(self): """ Tests the uniqueness of the values created by the NodeID generator """ generatedIDs = [] for i in range(100): newID = self.node._generateID() # ugly uniqueness test self.failIf(newID in generatedIDs, 'Generated ID #%d not unique!' % (i + 1)) generatedIDs.append(newID) def testKeyLength(self): """ Tests the key Node ID key length """ for i in range(20): id = self.node._generateID() # Key length: 20 bytes == 160 bits self.failUnlessEqual( len(id), 48, 'Length of generated ID is incorrect! Expected 384 bits, ' 'got %d bits.' % (len(id) * 8))
class NodeIDTest(unittest.TestCase): def setUp(self): self.node = Node() def test_new_node_has_auto_created_id(self): self.assertEqual(type(self.node.node_id), bytes) self.assertEqual(len(self.node.node_id), 48) def test_uniqueness_and_length_of_generated_ids(self): previous_ids = [] for i in range(100): new_id = self.node._generateID() self.assertNotIn(new_id, previous_ids, f'id at index {i} not unique') self.assertEqual( len(new_id), 48, 'id at index {} wrong length: {}'.format(i, len(new_id))) previous_ids.append(new_id)