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)
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)
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.'
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.'
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
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)
def test_register_search_fields_already_registered(): with pytest.raises(SearchFieldsAlreadyRegisteredException): register_search_fields(model=User, search_fields=['username'])