diff --git a/tests/test_outputs.py b/tests/test_outputs.py index d548b9d..53deebe 100644 --- a/tests/test_outputs.py +++ b/tests/test_outputs.py @@ -60,5 +60,16 @@ class TestOutputDirectory(TestToolsFilesystem): e = ecm.exception self.assertEquals(errno.ENOENT, e.errno) + def test_iscomplete(self): + reldir, absdir = self.adddir('outputs/Frobnitz-HOWTO') + o = OutputDirectory(absdir) + self.assertFalse(o.iscomplete) + for prop in o.expected: + fname = getattr(o, prop, None) + assert fname is not None + with open(fname, 'w') as f: + pass + self.assertTrue(o.iscomplete) + # # -- end of file diff --git a/tldp/outputs.py b/tldp/outputs.py index 45a1b9d..99a3af8 100644 --- a/tldp/outputs.py +++ b/tldp/outputs.py @@ -61,6 +61,15 @@ class OutputDirectory(OutputNamingConvention): self.logdir = os.path.join(self.dirname, logdir) super(OutputDirectory, self).__init__(self.dirname, self.stem) + @property + def iscomplete(self): + files = list() + for prop in self.expected: + name = getattr(self, prop, None) + assert name is not None + files.append(os.path.isfile(name)) + return all(files) + def clean(self): logger.info("%s cleaning dir %s.", self.stem, self.dirname) if os.path.isdir(self.dirname):