示例#1
0
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))
示例#2
0
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)