]> git.mxchange.org Git - quix0rs-apt-p2p.git/blobdiff - apt_dht_Khashmir/ktable.py
Change all print statements to log.msg calls.
[quix0rs-apt-p2p.git] / apt_dht_Khashmir / ktable.py
index 85abe4a82553dca0709b2561d2b3e3f95963f15d..f3001a5869ed5b36bb5fa3bf999ee67f823ca1dd 100644 (file)
@@ -4,6 +4,7 @@
 from datetime import datetime
 from bisect import bisect_left
 
+from twisted.python import log
 from twisted.trial import unittest
 
 import khash
@@ -13,10 +14,10 @@ class KTable:
     """local routing table for a kademlia like distributed hash table"""
     def __init__(self, node, config):
         # this is the root node, a.k.a. US!
+        assert node.id != NULL_ID
         self.node = node
         self.config = config
         self.buckets = [KBucket([], 0L, 2L**self.config['HASH_LENGTH'])]
-        self.insertNode(node)
         
     def _bucketIndexForInt(self, num):
         """the index of the bucket that should hold int"""
@@ -133,7 +134,7 @@ class KTable:
         # this bucket is full and contains our node, split the bucket
         if len(self.buckets) >= self.config['HASH_LENGTH']:
             # our table is FULL, this is really unlikely
-            print "Hash Table is FULL!  Increase K!"
+            log.err("Hash Table is FULL!  Increase K!")
             return
             
         self._splitBucket(self.buckets[i])
@@ -210,26 +211,26 @@ class KBucket:
 
 class TestKTable(unittest.TestCase):
     def setUp(self):
-        self.a = Node().init(khash.newID(), 'localhost', 2002)
+        self.a = Node(khash.newID(), 'localhost', 2002)
         self.t = KTable(self.a, {'HASH_LENGTH': 160, 'K': 8, 'MAX_FAILURES': 3})
 
     def testAddNode(self):
-        self.b = Node().init(khash.newID(), 'localhost', 2003)
+        self.b = Node(khash.newID(), 'localhost', 2003)
         self.t.insertNode(self.b)
-        self.assertEqual(len(self.t.buckets[0].l), 1)
-        self.assertEqual(self.t.buckets[0].l[0], self.b)
+        self.failUnlessEqual(len(self.t.buckets[0].l), 1)
+        self.failUnlessEqual(self.t.buckets[0].l[0], self.b)
 
     def testRemove(self):
         self.testAddNode()
         self.t.invalidateNode(self.b)
-        self.assertEqual(len(self.t.buckets[0].l), 0)
+        self.failUnlessEqual(len(self.t.buckets[0].l), 0)
 
     def testFail(self):
         self.testAddNode()
         for i in range(self.t.config['MAX_FAILURES'] - 1):
             self.t.nodeFailed(self.b)
-            self.assertEqual(len(self.t.buckets[0].l), 1)
-            self.assertEqual(self.t.buckets[0].l[0], self.b)
+            self.failUnlessEqual(len(self.t.buckets[0].l), 1)
+            self.failUnlessEqual(self.t.buckets[0].l[0], self.b)
             
         self.t.nodeFailed(self.b)
-        self.assertEqual(len(self.t.buckets[0].l), 0)
+        self.failUnlessEqual(len(self.t.buckets[0].l), 0)