-from unittest import *
-from khashmir import *
-import khash
+from unittest import defaultTestLoader, TextTestRunner, TestCase
+from sha import sha
+from random import randrange
+import os, sys
-from whrandom import randrange
+from twisted.internet import reactor
-import os
+from khashmir import Khashmir
+from khash import newID
if __name__ =="__main__":
tests = defaultTestLoader.loadTestsFromNames([sys.argv[0][:-3]])
class MultiTest(TestCase):
- num = 30
+ num = 20
def _done(self, val):
self.done = 1
def setUp(self):
self.l = []
- self.startport = 4044
+ self.startport = 4088
for i in range(self.num):
self.l.append(Khashmir('127.0.0.1', self.startport + i, '/tmp/%s.test' % (self.startport + i)))
reactor.iterate()
def testStoreRetrieve(self):
for i in range(10):
- K = khash.newID()
- V = khash.newID()
+ K = newID()
+ V = newID()
- self.done = 0
- def _cb(val):
- self.done = 1
- self.l[randrange(0, self.num)].storeValueForKey(K, V, _cb)
- while not self.done:
- reactor.iterate()
+ for a in range(3):
+ self.done = 0
+ def _scb(val):
+ self.done = 1
+ self.l[randrange(0, self.num)].storeValueForKey(K, V, _scb)
+ while not self.done:
+ reactor.iterate()
- self.got = 0
- self.done = 0
- def _cb(val):
- if not val:
- self.done = 1
- self.assertEqual(self.got, 1)
- elif V in val:
- self.got = 1
-
- self.l[randrange(0, self.num)].valueForKey(K, _cb)
- while not self.done:
- reactor.iterate()
+ def _rcb(val):
+ if not val:
+ self.done = 1
+ self.assertEqual(self.got, 1)
+ elif V in val:
+ self.got = 1
+ for x in range(3):
+ self.got = 0
+ self.done = 0
+ self.l[randrange(0, self.num)].valueForKey(K, _rcb)
+ while not self.done:
+ reactor.iterate()
+
+
+
+
+