5 from whrandom import randrange
9 if __name__ =="__main__":
10 tests = defaultTestLoader.loadTestsFromNames([sys.argv[0][:-3]])
11 result = TextTestRunner().run(tests)
13 class SimpleTests(TestCase):
15 self.a = Khashmir('127.0.0.1', 4044, '/tmp/a.test')
16 self.b = Khashmir('127.0.0.1', 4045, '/tmp/b.test')
19 self.a.listenport.stopListening()
20 self.b.listenport.stopListening()
21 os.unlink('/tmp/a.test')
22 os.unlink('/tmp/b.test')
26 def addContacts(self):
27 self.a.addContact('127.0.0.1', 4045)
33 def testAddContact(self):
34 self.assertEqual(len(self.a.table.buckets), 1)
35 self.assertEqual(len(self.a.table.buckets[0].l), 0)
37 self.assertEqual(len(self.b.table.buckets), 1)
38 self.assertEqual(len(self.b.table.buckets[0].l), 0)
42 self.assertEqual(len(self.a.table.buckets), 1)
43 self.assertEqual(len(self.a.table.buckets[0].l), 1)
44 self.assertEqual(len(self.b.table.buckets), 1)
45 self.assertEqual(len(self.b.table.buckets[0].l), 1)
47 def testStoreRetrieve(self):
50 self.a.storeValueForKey(sha('foo').digest(), 'foobar')
57 self.a.valueForKey(sha('foo').digest(), self._cb)
68 self.assertEqual(self.got, 1)
73 class MultiTest(TestCase):
81 for i in range(self.num):
82 self.l.append(Khashmir('127.0.0.1', self.startport + i, '/tmp/%s.test' % (self.startport + i)))
87 i.addContact('127.0.0.1', self.l[randrange(0,self.num)].port)
88 i.addContact('127.0.0.1', self.l[randrange(0,self.num)].port)
89 i.addContact('127.0.0.1', self.l[randrange(0,self.num)].port)
96 i.findCloseNodes(self._done)
101 i.findCloseNodes(self._done)
107 i.listenport.stopListening()
108 for i in range(self.startport, self.startport+self.num):
109 os.unlink('/tmp/%s.test' % i)
113 def testStoreRetrieve(self):
121 self.l[randrange(0, self.num)].storeValueForKey(K, V, _cb)
131 self.assertEqual(self.got, 1)
135 self.l[randrange(0, self.num)].valueForKey(K, _cb)