summaryrefslogtreecommitdiffstats
path: root/test/test_postprocessor.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_postprocessor.py')
-rw-r--r--test/test_postprocessor.py42
1 files changed, 38 insertions, 4 deletions
diff --git a/test/test_postprocessor.py b/test/test_postprocessor.py
index 554a51e..c00144e 100644
--- a/test/test_postprocessor.py
+++ b/test/test_postprocessor.py
@@ -102,10 +102,10 @@ class BasePostprocessorTest(unittest.TestCase):
pp = postprocessor.find(self.__class__.__name__[:-4].lower())
return pp(self.job, options)
- def _trigger(self, events=None, *args):
+ def _trigger(self, events=None):
for event in (events or ("prepare", "file")):
for callback in self.job.hooks[event]:
- callback(self.pathfmt, *args)
+ callback(self.pathfmt)
class ClassifyTest(BasePostprocessorTest):
@@ -579,6 +579,40 @@ class MtimeTest(BasePostprocessorTest):
self.assertEqual(self.pathfmt.kwdict["_mtime"], 315532800)
+class PythonTest(BasePostprocessorTest):
+
+ def test_module(self):
+ path = os.path.join(self.dir.name, "module.py")
+ self._write_module(path)
+
+ sys.path.insert(0, self.dir.name)
+ try:
+ self._create({"function": "module:calc"}, {"_value": 123})
+ finally:
+ del sys.path[0]
+
+ self.assertNotIn("_result", self.pathfmt.kwdict)
+ self._trigger()
+ self.assertEqual(self.pathfmt.kwdict["_result"], 246)
+
+ def test_path(self):
+ path = os.path.join(self.dir.name, "module.py")
+ self._write_module(path)
+
+ self._create({"function": path + ":calc"}, {"_value": 12})
+
+ self.assertNotIn("_result", self.pathfmt.kwdict)
+ self._trigger()
+ self.assertEqual(self.pathfmt.kwdict["_result"], 24)
+
+ def _write_module(self, path):
+ with open(path, "w") as fp:
+ fp.write("""
+def calc(kwdict):
+ kwdict["_result"] = kwdict["_value"] * 2
+""")
+
+
class ZipTest(BasePostprocessorTest):
def test_zip_default(self):
@@ -645,7 +679,7 @@ class ZipTest(BasePostprocessorTest):
self.assertEqual(len(pp.zfile.NameToInfo), 4)
# close file
- self._trigger(("finalize",), 0)
+ self._trigger(("finalize",))
# reopen to check persistence
with zipfile.ZipFile(pp.zfile.filename) as file:
@@ -678,7 +712,7 @@ class ZipTest(BasePostprocessorTest):
self._trigger()
# close file
- self._trigger(("finalize",), 0)
+ self._trigger(("finalize",))
self.assertEqual(pp.zfile.write.call_count, 3)
for call in pp.zfile.write.call_args_list: