From 2eb066724cff35f952337b1308928f3c83611816 Mon Sep 17 00:00:00 2001 From: David Stainton Date: Fri, 11 Sep 2015 21:40:15 +0200 Subject: [PATCH] WIP --- src/allmydata/frontends/magic_folder.py | 3 +++ src/allmydata/test/no_network.py | 5 +++++ src/allmydata/test/test_cli_magic_folder.py | 10 ++++++++++ src/allmydata/test/test_magic_folder.py | 19 +++++++++++++------ 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/allmydata/frontends/magic_folder.py b/src/allmydata/frontends/magic_folder.py index dedb29ef..7d114e21 100644 --- a/src/allmydata/frontends/magic_folder.py +++ b/src/allmydata/frontends/magic_folder.py @@ -50,6 +50,7 @@ class MagicFolder(service.MultiService): service.MultiService.__init__(self) + print "MagicFolder __init__" db = backupdb.get_backupdb(dbfile, create_version=(backupdb.SCHEMA_v3, 3)) if db is None: return Failure(Exception('ERROR: Unable to load magic folder db.')) @@ -154,6 +155,7 @@ class Uploader(QueueMixin): def __init__(self, client, local_path_u, db, upload_dircap, inotify, pending_delay): QueueMixin.__init__(self, client, local_path_u, db, 'uploader') + print "Magic-Folder: Uploader: __init__" self.is_ready = False # TODO: allow a path rather than a cap URI. @@ -393,6 +395,7 @@ class Downloader(QueueMixin): def __init__(self, client, local_path_u, db, collective_dircap): QueueMixin.__init__(self, client, local_path_u, db, 'downloader') + print "Magic-Folder: Downloader: __init__" # TODO: allow a path rather than a cap URI. self._collective_dirnode = self._client.create_node_from_uri(collective_dircap) diff --git a/src/allmydata/test/no_network.py b/src/allmydata/test/no_network.py index 4e6249e5..e3b4ef88 100644 --- a/src/allmydata/test/no_network.py +++ b/src/allmydata/test/no_network.py @@ -380,14 +380,19 @@ class GridTestMixin: def get_clientdir(self, i=0): return self.g.clients[i].basedir + def set_clientdir(self, basedir, i=0): + self.g.clients[i].basedir = basedir + def get_client(self, i=0): return self.g.clients[i] def restart_client(self, i=0): client = self.g.clients[i] + #client_basedir = self.get_clientdir() d = defer.succeed(None) d.addCallback(lambda ign: self.g.removeService(client)) def _make_client(ign): + #self.set_clientdir(client_basedir, i) c = self.g.make_client(i, write_config=False) self.g.clients[i] = c self._record_webports_and_baseurls() diff --git a/src/allmydata/test/test_cli_magic_folder.py b/src/allmydata/test/test_cli_magic_folder.py index 9d3880e6..412995bc 100644 --- a/src/allmydata/test/test_cli_magic_folder.py +++ b/src/allmydata/test/test_cli_magic_folder.py @@ -108,6 +108,16 @@ class MagicFolderCLITestMixin(CLITestMixin, GridTestMixin): magicfolder.ready() return magicfolder + def create_magicfolder(self, client_num=0): + dbfile = abspath_expanduser_unicode(u"magicfolderdb.sqlite", base=self.get_clientdir(i=client_num)) + self.collective_dircap, self.upload_dircap = self.get_caps_from_files(0) + + self.magicfolder = MagicFolder(self.get_client(client_num), self.upload_dircap, self.collective_dircap, self.local_dir, + dbfile, inotify=self.inotify, pending_delay=0.2) + magicfolder.setServiceParent(self.get_client(client_num)) + return magicfolder.ready() + + def setup_alice_and_bob(self): self.set_up_grid(num_clients=2) diff --git a/src/allmydata/test/test_magic_folder.py b/src/allmydata/test/test_magic_folder.py index 5ce83fba..265d2c3d 100644 --- a/src/allmydata/test/test_magic_folder.py +++ b/src/allmydata/test/test_magic_folder.py @@ -55,14 +55,14 @@ class MagicFolderTestMixin(MagicFolderCLITestMixin, ShouldFailMixin, ReallyEqual return self.magicfolder.ready() def _create_magicfolder(self, ign): + print "_create_magicfolder self.basedir %s" % (self.basedir,) dbfile = abspath_expanduser_unicode(u"magicfolderdb.sqlite", base=self.basedir) + print "<>--< dbfile %s" % (dbfile,) self.magicfolder = MagicFolder(self.get_client(), self.upload_dircap, self.collective_dircap, self.local_dir, dbfile, inotify=self.inotify, pending_delay=0.2) self.magicfolder.setServiceParent(self.get_client()) self.magicfolder.ready() - # Prevent unclean reactor errors. - def test_db_basic(self): fileutil.make_dirs(self.basedir) self._createdb() @@ -195,14 +195,21 @@ class MagicFolderTestMixin(MagicFolderCLITestMixin, ShouldFailMixin, ReallyEqual a second time. This test is meant to test the database persistence along with the startup and shutdown code paths of the magic-folder service. """ + print "test_persistence" + print "basedir = %s" % (self.basedir,) + self.set_up_grid() self.local_dir = abspath_expanduser_unicode(u"test_persistence", base=self.basedir) self.mkdir_nonascii(self.local_dir) self.collective_dircap = "" - d = self.create_invite_join_magic_folder(u"Alice", self.local_dir) - d.addCallback(self._create_magicfolder) - + print "calling create_invite_join_magic_folder with self.local_dir %s" % (self.local_dir,) + d = defer.succeed(None) + d.addCallback(lambda ign: self.create_invite_join_magic_folder(u"Alice", self.local_dir)) + #d.addCallback(self._create_magicfolder) + d.addCallback(self.create_magicfolder()) + #d.addCallback(self._restart_client) + def create_test_file(result, filename): d2 = self.magicfolder.uploader.set_hook('processed') test_file = abspath_expanduser_unicode(filename, base=self.local_dir) @@ -224,7 +231,7 @@ class MagicFolderTestMixin(MagicFolderCLITestMixin, ShouldFailMixin, ReallyEqual print "2nd upload complete" d.addBoth(fu2) - d.addCallback(lambda ign: self.failUnlessReallyEqual(self._get_count('uploader.objects_succeeded'), 1)) + #d.addCallback(lambda ign: self.failUnlessReallyEqual(self._get_count('uploader.objects_succeeded'), 1)) d.addCallback(lambda ign: self.failUnlessReallyEqual(self._get_count('uploader.objects_queued'), 0)) d.addBoth(self.cleanup) return d -- 2.45.2