From 36898e9aea6c823b1e815b674b5bb0a2c5afe3cd Mon Sep 17 00:00:00 2001 From: Brian Warner Date: Sun, 3 Dec 2006 00:56:27 -0700 Subject: [PATCH] make the system test work --- allmydata/test/test_system.py | 57 +++++++++++++++++++++-------------- allmydata/upload.py | 2 +- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/allmydata/test/test_system.py b/allmydata/test/test_system.py index 7b7ad7b9..e04ce620 100644 --- a/allmydata/test/test_system.py +++ b/allmydata/test/test_system.py @@ -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 + diff --git a/allmydata/upload.py b/allmydata/upload.py index 222c8998..3205367e 100644 --- a/allmydata/upload.py +++ b/allmydata/upload.py @@ -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): -- 2.45.2