view tests/test_formatter.py @ 307:e4e13e1138b2

Frontend refactor and backend support for cached page lists. * Page lists like orphans or broken redirects are now cached in the DB, and invalidated when something changes. * Refactor the frontend code to make it easier to add lots of other such page lists. Reskin the admin dashboard a bit. * Add new "broken redirects" list for testing new code.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 04 Oct 2014 21:05:22 -0700
parents 1ef50117ec58
children
line wrap: on
line source

import pytest
from wikked.formatter import PageFormatter, FormattingContext
from tests import format_link, format_include


@pytest.mark.parametrize('in_text, text, meta, links', [
    (
        "Something.\nThat's it.\n",
        "Something.\nThat's it.\n",
        None, None),
    (
        "Some meta.\n\n{{foo: Whatever man}}\n",
        "Some meta.\n\n",
        {'foo': ["Whatever man"]}, None),
    (
        "Some multi-meta.\n\n{{foo: First}}\n{{foo: Second}}\n",
        "Some multi-meta.\n\n\n",
        {'foo': ["First", "Second"]}, None),
    (
        "Multi-line meta:\n\n{{foo: This is a\n     multi-line meta\n}}\n",
        "Multi-line meta:\n\n",
        {'foo': ["This is a\n     multi-line meta"]}, None)
    ])
def test_formatter(in_text, text, meta, links):
    f = PageFormatter()
    ctx = FormattingContext('/foo')
    actual = f.formatText(ctx, in_text)
    assert actual == text
    if meta:
        assert ctx.meta == meta
    else:
        assert ctx.meta == {}
    if links:
        assert ctx.out_links == links
    else:
        assert ctx.out_links == []