Пример #1
0
def test_traverse():
    bar = Struct(
        _name='bar',
        _declared_members=dict(
            baz=Struct(_name='baz'),
            buzz=Struct(_name='buzz'),
        ),
    )
    foo = Struct(
        _name='foo',
        _declared_members=dict(bar=bar, ),
    )
    root = StubTraversable(
        _name='root',
        members=Struct(foo=foo),
    )

    expected = {
        '': '',
        'foo': 'foo',
        'bar': 'foo/bar',
        'baz': 'foo/bar/baz',
        'buzz': 'foo/bar/buzz',
    }
    actual = build_long_path_by_path(root)
    assert items(actual) == items(expected)
    assert len(keys(actual)) == len(set(keys(actual)))
Пример #2
0
def test_traverse_on_iommi():
    class MyPage(Page):
        header = Fragment()
        some_form = Form(fields=Namespace(fisk=Field(), ))
        some_other_form = Form(fields=Namespace(
            fjomp=Field(),
            fisk=Field(),
        ))
        a_table = Table(
            model=TFoo,
            columns=Namespace(
                columns=Column(),
                fusk=Column(attr='b', filter__include=True),
            ),
        )

    page = MyPage()

    actual = build_long_path_by_path(page)
    assert len(actual.keys()) == len(set(actual.keys()))
    page = page.bind(request=req('get'))

    assert page.iommi_path == ''
    assert page.parts.header.iommi_path == 'header'
    assert page.parts.some_form.fields.fisk.iommi_path == 'fisk'
    assert page.parts.some_other_form.fields.fisk.iommi_path == 'some_other_form/fisk'
    assert page.parts.a_table.query.form.iommi_path == 'form'
    assert page.parts.a_table.query.form.fields.fusk.iommi_path == 'fusk'
    assert page.parts.a_table.columns.fusk.iommi_path == 'a_table/fusk'
    assert page._name == 'root'
    assert set(keys(page.iommi_evaluate_parameters())) == {
        'traversable', 'page', 'request'
    }
Пример #3
0
def test_traverse_on_iommi():
    class MyPage(Page):
        header = Fragment()
        some_form = Form(fields=Namespace(fisk=Field(), ))
        some_other_form = Form(fields=Namespace(
            fjomp=Field(),
            fisk=Field(),
        ))
        a_table = Table(
            model=TFoo,
            columns=Namespace(
                columns=Column(),
                fusk=Column(attr='b', filter__include=True),
            ),
        )

    page = MyPage()

    actual = build_long_path_by_path(page)
    assert actual == {
        '': 'parts/header',
        'a_table': 'parts/a_table',
        'a_table/columns': 'parts/a_table/columns/columns',
        'a_table/fusk': 'parts/a_table/columns/fusk',
        'a_table/select': 'parts/a_table/columns/select',
        'advanced': 'parts/a_table/query/advanced',
        'columns': 'parts/a_table/query/form/fields/columns',
        'columns/config':
        'parts/a_table/query/form/fields/columns/endpoints/config',
        'columns/validate':
        'parts/a_table/query/form/fields/columns/endpoints/validate',
        'config': 'parts/some_form/fields/fisk/endpoints/config',
        'csv': 'parts/a_table/endpoints/csv',
        'errors': 'parts/a_table/query/endpoints/errors',
        'fisk': 'parts/some_form/fields/fisk',
        'fisk/config': 'parts/some_other_form/fields/fisk/endpoints/config',
        'fisk/validate':
        'parts/some_other_form/fields/fisk/endpoints/validate',
        'fjomp': 'parts/some_other_form/fields/fjomp',
        'fjomp/config': 'parts/some_other_form/fields/fjomp/endpoints/config',
        'fjomp/validate':
        'parts/some_other_form/fields/fjomp/endpoints/validate',
        'form': 'parts/a_table/query/form',
        'freetext_search': 'parts/a_table/query/form/fields/freetext_search',
        'freetext_search/config':
        'parts/a_table/query/form/fields/freetext_search/endpoints/config',
        'freetext_search/validate':
        'parts/a_table/query/form/fields/freetext_search/endpoints/validate',
        'fusk': 'parts/a_table/query/form/fields/fusk',
        'fusk/config': 'parts/a_table/query/form/fields/fusk/endpoints/config',
        'fusk/validate':
        'parts/a_table/query/form/fields/fusk/endpoints/validate',
        'page': 'parts/a_table/parts/page',
        'query': 'parts/a_table/query',
        'query/columns': 'parts/a_table/query/filters/columns',
        'query/fusk': 'parts/a_table/query/filters/fusk',
        'query/select': 'parts/a_table/query/filters/select',
        'query_form_toggle_script':
        'parts/a_table/assets/query_form_toggle_script',
        'select': 'parts/a_table/query/form/fields/select',
        'select/config':
        'parts/a_table/query/form/fields/select/endpoints/config',
        'select/validate':
        'parts/a_table/query/form/fields/select/endpoints/validate',
        'some_form': 'parts/some_form',
        'some_other_form': 'parts/some_other_form',
        'some_other_form/fisk': 'parts/some_other_form/fields/fisk',
        'submit': 'parts/a_table/query/form/actions/submit',
        'table_js_select_all': 'parts/a_table/assets/table_js_select_all',
        'tbody': 'parts/a_table/endpoints/tbody',
        'toggle': 'parts/a_table/query/advanced/toggle',
        'validate': 'parts/some_form/fields/fisk/endpoints/validate',
    }
    assert len(actual.values()) == len(set(actual.values()))
    page = page.bind(request=req('get'))

    assert page.iommi_path == ''
    assert page.parts.header.iommi_path == 'header'
    assert page.parts.some_form.fields.fisk.iommi_path == 'fisk'
    assert page.parts.some_other_form.fields.fisk.iommi_path == 'some_other_form/fisk'
    assert page.parts.a_table.query.form.iommi_path == 'form'
    assert page.parts.a_table.query.form.fields.fusk.iommi_path == 'fusk'
    assert page.parts.a_table.columns.fusk.iommi_path == 'a_table/fusk'
    assert page._name == 'root'
    assert set(keys(page.iommi_evaluate_parameters())) == {
        'traversable', 'page', 'request'
    }