6 from random import randrange
10 if __name__ =="__main__":
11 tests = defaultTestLoader.loadTestsFromNames([sys.argv[0][:-3]])
12 result = TextTestRunner().run(tests)
14 class SimpleTests(TestCase):
16 self.a = Khashmir('127.0.0.1', 4044, '/tmp/a.test')
17 self.b = Khashmir('127.0.0.1', 4045, '/tmp/b.test')
20 self.a.listenport.stopListening()
21 self.b.listenport.stopListening()
22 os.unlink('/tmp/a.test')
23 os.unlink('/tmp/b.test')
27 def addContacts(self):
28 self.a.addContact('127.0.0.1', 4045)
34 def testAddContact(self):
35 self.assertEqual(len(self.a.table.buckets), 1)
36 self.assertEqual(len(self.a.table.buckets[0].l), 0)
38 self.assertEqual(len(self.b.table.buckets), 1)
39 self.assertEqual(len(self.b.table.buckets[0].l), 0)
43 self.assertEqual(len(self.a.table.buckets), 1)
44 self.assertEqual(len(self.a.table.buckets[0].l), 1)
45 self.assertEqual(len(self.b.table.buckets), 1)
46 self.assertEqual(len(self.b.table.buckets[0].l), 1)
48 def testStoreRetrieve(self):
51 self.a.storeValueForKey(sha('foo').digest(), 'foobar')
58 self.a.valueForKey(sha('foo').digest(), self._cb)
69 self.assertEqual(self.got, 1)
74 class MultiTest(TestCase):
82 for i in range(self.num):
83 self.l.append(Khashmir('127.0.0.1', self.startport + i, '/tmp/%s.test' % (self.startport + i)))
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)
90 i.addContact('127.0.0.1', self.l[randrange(0,self.num)].port)
97 i.findCloseNodes(self._done)
102 i.findCloseNodes(self._done)
108 i.listenport.stopListening()
109 for i in range(self.startport, self.startport+self.num):
110 os.unlink('/tmp/%s.test' % i)
114 def testStoreRetrieve(self):
123 self.l[randrange(0, self.num)].storeValueForKey(K, V, _scb)
131 self.assertEqual(self.got, 1)
137 self.l[randrange(0, self.num)].valueForKey(K, _rcb)