view tests/test_processing_tree.py @ 317:6c5de6edacf7

internal: Be more forgiving about building `Taxonomy` objects. Add `setting_name`. The setting name of a taxonomy is whatever name is used to assign terms of that taxonomy to a page. If the taxonomy is "multiple", this is the name of the taxonomy. If not, it's the term name (a singular name).
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 28 Mar 2015 14:17:50 -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]