Exemplo n.º 1
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)
Exemplo n.º 2
0
def test_register_search_fields_pk_special_case():
    # pk doesn't exist on the model but it's still valid
    register_search_fields(model=User, search_fields=['pk'], overwrite=True)

    # restore at the end
    register_search_fields(model=User,
                           search_fields=['username'],
                           overwrite=True)
Exemplo n.º 3
0
def test_register_search_fields_error():
    class RegisterNameExceptionModel(Model):
        foo = CharField(max_length=100)

    with pytest.raises(TypeError) as e:
        register_search_fields(model=RegisterNameExceptionModel, search_fields=['foo'])

    assert str(e.value) == 'Cannot register search field "foo" for model RegisterNameExceptionModel. foo must be unique.'
Exemplo n.º 4
0
def test_register_search_fields_error_nested():
    class AModel(Model):
        bar = CharField(max_length=100)

    class RegisterNestedNameExceptionModel(Model):
        foo = ForeignKey(AModel, on_delete=CASCADE)

    with pytest.raises(TypeError) as e:
        register_search_fields(model=RegisterNestedNameExceptionModel, search_fields=['foo__bar'])

    assert str(e.value) == 'Cannot register search field "foo__bar" for model AModel. bar must be unique.'
Exemplo n.º 5
0
def test_build_query_expression_for_model_with_search_fields():
    old_search_fields_by_model = dict(from_model._search_fields_by_model)

    register_search_fields(model=Foo, search_fields=['foo', 'pk'], allow_non_unique=True)

    foo = Foo.objects.create(foo=17)
    assert (
        build_query_expression(filter=Filter(query_name='bar', search_fields=['foo']), value=foo)
        == f'bar="{foo.foo}"'  # Vanilla case with only one serach field
    )
    assert (
        build_query_expression(filter=Filter(query_name='bar', search_fields=['foo', 'pk']), value=foo)
        == f'bar="{foo.pk}"'  # If more than one, assume the last one is the one that is unique
    )

    from_model._search_fields_by_model = old_search_fields_by_model
Exemplo n.º 6
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)
Exemplo n.º 7
0
def test_register_search_fields_already_registered():
    with pytest.raises(SearchFieldsAlreadyRegisteredException):
        register_search_fields(model=User, search_fields=['username'])