diff tests/test_processing_tree.py @ 3:f485ba500df3

Gigantic change to basically make PieCrust 2 vaguely functional. - Serving works, with debug window. - Baking works, multi-threading, with dependency handling. - Various things not implemented yet.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 10 Aug 2014 23:43:16 -0700
parents
children 72f17534d58e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_processing_tree.py	Sun Aug 10 23:43:16 2014 -0700
@@ -0,0 +1,38 @@
+from piecrust.processing.base import CopyFileProcessor, SimpleFileProcessor
+from piecrust.processing.tree import ProcessingTreeBuilder, ProcessingTreeNode
+
+
+class MockProcessor(SimpleFileProcessor):
+    def __init__(self):
+        super(MockProcessor, self).__init__({'mock': 'out'})
+        self.processed = []
+
+    def _doProcess(self, in_path, out_path):
+        self.processed.append((in_path, out_path))
+
+
+mock_processors = [MockProcessor(), CopyFileProcessor()]
+IDX_MOCK = 0
+IDX_COPY = 1
+
+
+def test_mock_node():
+    node = ProcessingTreeNode('/foo.mock', list(mock_processors))
+    assert node.getProcessor() == mock_processors[IDX_MOCK]
+
+
+def test_copy_node():
+    node = ProcessingTreeNode('/foo.other', list(mock_processors))
+    assert node.getProcessor() == mock_processors[IDX_COPY]
+
+
+def test_build_simple_tree():
+    builder = ProcessingTreeBuilder(mock_processors)
+    root = builder.build('/foo.mock')
+    assert root is not None
+    assert root.getProcessor() == mock_processors[IDX_MOCK]
+    assert not root.is_leaf
+    assert len(root.outputs) == 1
+    out = root.outputs[0]
+    assert out.getProcessor() == mock_processors[IDX_COPY]
+