diff options
Diffstat (limited to 'libbe/bugdir.py')
-rw-r--r-- | libbe/bugdir.py | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/libbe/bugdir.py b/libbe/bugdir.py index c120482..66bd606 100644 --- a/libbe/bugdir.py +++ b/libbe/bugdir.py @@ -173,12 +173,14 @@ class BugDir (list, settings_object.SavedSettingsObject): settings_object.SavedSettingsObject.__init__(self) self.storage = storage self.id = libbe.util.id.ID(self, 'bugdir') + self.uuid = uuid if from_storage == True: - self.uuid = [c for c in self.storage.children() - if c != 'version'][0] + if self.uuid == None: + self.uuid = [c for c in self.storage.children() + if c != 'version'][0] self.load_settings() else: - if uuid == None: + if self.uuid == None: self.uuid = libbe.util.id.uuid_gen() self.settings = {} self._setup_saved_settings() @@ -357,28 +359,35 @@ if libbe.TESTING == True: else: dir = utility.Dir() self._dir_ref = dir # postpone cleanup since dir.cleanup() removes dir. - storage = libbe.storage.base.Storage( \ - os.path.join(dir.path, 'repo.pkl')) + storage = libbe.storage.base.Storage(dir.path) storage.init() storage.connect() - BugDir.__init__(self, storage=storage) - bug_a = self.new_bug(summary="Bug A", _uuid="a") - bug_a.creator = "John Doe <jdoe@example.com>" + BugDir.__init__(self, storage=storage, uuid='simple') + bug_a = self.new_bug(summary='Bug A', _uuid='a') + bug_a.creator = 'John Doe <jdoe@example.com>' bug_a.time = 0 - bug_b = self.new_bug(summary="Bug B", _uuid="b") - bug_b.creator = "Jane Doe <jdoe@example.com>" + bug_b = self.new_bug(summary='Bug B', _uuid='b') + bug_b.creator = 'Jane Doe <jdoe@example.com>' bug_b.time = 0 - bug_b.status = "closed" + bug_b.status = 'closed' if self.storage != None: self.storage.disconnect() # flush to storage self.storage.connect() + def cleanup(self): if self.storage != None: + self.storage.writeable = True self.storage.disconnect() self.storage.destroy() - if hasattr(self, "_dir_ref"): + if hasattr(self, '_dir_ref'): self._dir_ref.cleanup() + def flush_reload(self): + if self.storage != None: + self.storage.disconnect() + self.storage.connect() + self._clear_bugs() + # class BugDirTestCase(unittest.TestCase): # def setUp(self): # self.dir = utility.Dir() @@ -485,8 +494,7 @@ if libbe.TESTING == True: def setUp(self): # create a pre-existing bugdir in a temporary directory self.dir = utility.Dir() - self.storage = libbe.storage.base.Storage( \ - os.path.join(self.dir.path, 'repo.pkl')) + self.storage = libbe.storage.base.Storage(self.dir.path) self.storage.init() self.storage.connect() self.bugdir = BugDir(self.storage) @@ -511,9 +519,7 @@ if libbe.TESTING == True: bugdir.storage.is_writeable()) uuids = sorted([bug.uuid for bug in bugdir]) self.failUnless(uuids == ['a', 'b'], uuids) - self.storage.disconnect() # flush - self.storage.connect() - bugdir._clear_bugs() + bugdir.flush_reload() uuids = sorted(bugdir.uuids()) self.failUnless(uuids == ['a', 'b'], uuids) uuids = sorted([bug.uuid for bug in bugdir]) |