Esempio n. 1
0
def test_apply_style_not_affecting_definition_2():
    register_style(
        'foo_style',
        Style(MenuItem__attrs__class__foo=True, ),
    )

    register_style(
        'bar_style',
        Style(MenuItem__attrs__class__bar=True, ),
    )

    class MyPage(Page):
        menu = Menu(sub_menu=dict(root=MenuItem()))

    class OtherPage(Page):
        menu = MyPage.menu

    page = MyPage(iommi_style='foo_style').bind(request=Struct(path=''))
    assert page.parts.menu.sub_menu.root.attrs['class'] == dict(foo=True)

    page = OtherPage(iommi_style='bar_style').bind(request=Struct(path=''))
    assert page.parts.menu.sub_menu.root.attrs['class'] == dict(bar=True)

    unregister_style('foo_style')
    unregister_style('bar_style')
Esempio n. 2
0
def test_apply_style_not_affecting_definition(settings):
    register_style('my_style', Style(Fragment__attrs__class__foo=True, ))

    register_style('other_style', Style(Fragment__attrs__class__bar=True, ))

    definition = Fragment()

    settings.IOMMI_DEFAULT_STYLE = 'my_style'
    fragment = definition.bind(request=None)
    assert fragment.attrs['class'] == dict(foo=True)

    settings.IOMMI_DEFAULT_STYLE = 'other_style'
    fragment = definition.bind(request=None)
    assert fragment.attrs['class'] == dict(bar=True)

    unregister_style('my_style')
    unregister_style('other_style')
Esempio n. 3
0
def test_context_processor_is_called_on_render_root():
    style_name = 'test_context_processor_is_called_on_render_root'
    style = Style(
        base,
        base_template='test_context_processor_is_called_on_render_root.html',
    )
    register_style(style_name, style)

    part = Page(
        context__root_part_context_variable='root_part_context_variable',
        iommi_style=style_name,
    )

    t = render_root(
        part=part.bind(request=req('get')),
        context=dict(my_context_variable='my_context_variable'),
    )
    assert t == 'context_processor_is_called\nroot_part_context_variable\nmy_context_variable\n'
Esempio n. 4
0
    def ready(self):
        from django.contrib.auth.models import (
            User,
            Permission,
        )

        register_search_fields(model=User, search_fields=['username'])
        register_search_fields(model=Permission, search_fields=['codename'])

        from iommi import register_style
        from iommi.style_test_base import test
        from iommi.style_base import base
        from iommi.style_bootstrap import (
            bootstrap,
            bootstrap_horizontal,
        )
        from iommi.style_semantic_ui import semantic_ui
        from iommi.style_foundation import foundation, foundation_horizontal
        from iommi.style_django_admin import django_admin, django_admin_horizontal
        from iommi.style_water import water
        from iommi.style_bulma import bulma, bulma_query_form

        register_style('base', base)
        register_style('test', test)
        register_style('bulma', bulma)
        register_style('bulma_query_form', bulma_query_form)
        register_style('bootstrap', bootstrap)
        register_style('bootstrap_horizontal', bootstrap_horizontal)
        register_style('semantic_ui', semantic_ui)
        register_style('water', water)
        register_style('foundation', foundation)
        register_style('foundation_horizontal', foundation_horizontal)
        register_style('django_admin', django_admin)
        register_style('django_admin_horizontal', django_admin_horizontal)
Esempio n. 5
0
    def ready(self):
        from django.contrib.auth.models import (
            User,
            Permission,
        )
        register_search_fields(model=User, search_fields=['username'])
        register_search_fields(model=Permission, search_fields=['codename'])

        from iommi import register_style
        from iommi.style_test_base import test
        from iommi.style_base import base
        from iommi.style_bootstrap import (
            bootstrap,
            bootstrap_horizontal,
        )
        from iommi.style_semantic_ui import semantic_ui
        from iommi.style_foundation import foundation
        register_style('base', base)
        register_style('test', test)
        register_style('bootstrap', bootstrap)
        register_style('bootstrap_horizontal', bootstrap_horizontal)
        register_style('semantic_ui', semantic_ui)
        register_style('water', Style(base))
        register_style('foundation', foundation)
Esempio n. 6
0
def test_get_config():
    with register_style(
            'fruit_style',
            Style(Fruit__attrs__class__style=True, ),
    ):

        class Fruit(Traversable):
            attrs = Refinable()

            @reinvokable
            @dispatch(
                attrs__class__fruit=True, )
            def __init__(self, **kwargs):
                super(Fruit, self).__init__(**kwargs)

            @classmethod
            @class_shortcut(
                attrs__class__some_fruit=True, )
            def some_fruit(cls, *, call_target=None, **kwargs):
                return call_target(**kwargs)

        class SubFruit(Fruit):
            @reinvokable
            @dispatch(
                attrs__class__sub_fruit=True, )
            def __init__(self, **kwargs):
                super(SubFruit, self).__init__(**kwargs)

            @classmethod
            @class_shortcut(
                call_target__attribute='some_fruit',
                attrs__class__sub_some_fruit=True,
            )
            def some_fruit(cls, *, call_target=None, **kwargs):
                return call_target(**kwargs)

        @declarative(Fruit, '_fruits_dict')
        @with_meta
        class Basket(Traversable):
            fruits = Refinable()

            class Meta:
                fruits__banana__attrs__class__basket = True

            @dispatch(
                fruits=EMPTY, )
            def __init__(self, *, _fruits_dict, fruits, **kwargs):
                super(Basket, self).__init__(**kwargs)
                collect_members(self,
                                name='fruits',
                                items_dict=_fruits_dict,
                                items=fruits,
                                cls=Fruit)

            def on_bind(self) -> None:
                bind_members(self, name='fruits')

        class SubBasket(Basket):
            class Meta:
                fruits__banana__attrs__class__sub_basket = True
                iommi_style = 'fruit_style'

        class MyBasket(SubBasket):
            banana = SubFruit.some_fruit(
                attrs__class__my_basket_fruit_invoke=True, )

        basket = MyBasket(
            fruits__banana__attrs__class__my_basket_invoke=True).bind(
                request=None)

        assert list(basket.fruits.banana.attrs['class'].keys()) == [
            'fruit',
            'sub_fruit',
            'style',
            'basket',
            'sub_basket',
            'my_basket_invoke',
            'some_fruit',
            'sub_some_fruit',
            'my_basket_fruit_invoke',
        ]