make the system test work

This commit is contained in:
Brian Warner 2006-12-03 00:56:27 -07:00
parent eedef54a72
commit 36898e9aea
2 changed files with 36 additions and 23 deletions

View File

@ -14,51 +14,64 @@ class SystemTest(unittest.TestCase):
def tearDown(self):
d = self.sparent.stopService()
d.addCallback(lambda res: flushEventualQueue())
def _done(res):
d1 = defer.Deferred()
reactor.callLater(0.1, d1.callback, None)
return d1
d.addCallback(_done)
return d
def addService(self, s):
def add_service(self, s):
s.setServiceParent(self.sparent)
return s
def setUpNodes(self, NUMCLIENTS=5):
def set_up_nodes(self, NUMCLIENTS=5):
self.numclients = NUMCLIENTS
if not os.path.isdir("queen"):
os.mkdir("queen")
q = self.queen = self.addService(queen.Queen(basedir="queen"))
queen_pburl = q.urls["roster"]
clients = self.clients = []
q = self.queen = self.add_service(queen.Queen(basedir="queen"))
self.queen_pburl = q.urls["roster"]
self.clients = []
for i in range(NUMCLIENTS):
basedir = "client%d" % i
if not os.path.isdir(basedir):
os.mkdir(basedir)
c = self.addService(client.Client(basedir=basedir))
c.set_queen_pburl(queen_pburl)
clients.append(c)
c = self.add_service(client.Client(basedir=basedir))
c.set_queen_pburl(self.queen_pburl)
self.clients.append(c)
log.msg("STARTING")
return self.wait_for_connections()
def waitForConnections(self):
# the cheap way: time
d = defer.Deferred()
reactor.callLater(1, d.callback, None)
return d
def wait_for_connections(self, ignored=None):
for c in self.clients:
if len(c.connections) != self.numclients - 1:
d = defer.Deferred()
d.addCallback(self.wait_for_connections)
reactor.callLater(0.05, d.callback, None)
return d
return defer.succeed(None)
def test_connections(self):
self.setUpNodes()
d = self.waitForConnections()
d = self.set_up_nodes()
def _check(res):
log.msg("CHECKING")
for c in self.clients:
self.failUnlessEqual(len(c.connections), 4)
d.addCallback(_check)
return d
test_connections.timeout = 20
def test_upload(self):
self.setUpNodes()
d = self.waitForConnections()
d = self.set_up_nodes()
def _upload(res):
log.msg("DONE")
log.msg("UPLOADING")
u = self.clients[0].getServiceNamed("uploader")
d1 = u.upload_data("Some data to upload")
d1 = u.upload_data("Some data to upload\n")
return d1
d.addCallback(_upload)
def _done(res):
log.msg("DONE")
print "upload finished"
d.addCallback(_done)
return d
test_upload.timeout = 20

View File

@ -33,8 +33,8 @@ class FileUploader:
filehandle.seek(0)
def make_encoder(self):
self._encoder = encode.Encoder(self._filehandle, 4)
self._shares = 4
self._encoder = encode.Encoder(self._filehandle, self._shares)
self._share_size = self._size
def set_verifierid(self, vid):