Mercurial > piecrust2
view tests/test_processing_tree.py @ 853:f070a4fc033c
core: Continue PieCrust3 refactor, simplify pages.
The asset pipeline is still the only function pipeline at this point.
* No more `QualifiedPage`, and several other pieces of code deleted.
* Data providers are simpler and more focused. For instance, the page iterator
doesn't try to support other types of items.
* Route parameters are proper known source metadata to remove the confusion
between the two.
* Make the baker and pipeline more correctly manage records and record
histories.
* Add support for record collapsing and deleting stale outputs in the asset
pipeline.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 21 May 2017 00:06:59 -0700 |
parents | f485ba500df3 |
children | 72f17534d58e |
line wrap: on
line source
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]