Пример #1
0
    def test_get_lookup(self):
        class Meta:
            model = Article
            fields = (
                ('author__team__name', {'lookup': 'contain'}),
                'title',
            )

        options = SearchFormOptions(Meta)
        assert options.get_lookup('author__team__name') == 'contain'
        assert options.get_lookup('title') == ''
Пример #2
0
    def test_get_aliase(self):
        class Meta:
            model = Article
            fields = (
                ('author__team__name', {'as': 'team_name'}),
                'title',
            )

        options = SearchFormOptions(Meta)
        assert options.get_aliase('author__team__name') == 'team_name'
        assert options.get_aliase('title') == 'title'
Пример #3
0
    def test_get_lookup(self):
        class Meta:
            model = Article
            fields = (
                ('author__team__name', {
                    'lookup': 'contain'
                }),
                'title',
            )

        options = SearchFormOptions(Meta)
        assert options.get_lookup('author__team__name') == 'contain'
        assert options.get_lookup('title') == ''
Пример #4
0
    def test_get_aliase(self):
        class Meta:
            model = Article
            fields = (
                ('author__team__name', {
                    'as': 'team_name'
                }),
                'title',
            )

        options = SearchFormOptions(Meta)
        assert options.get_aliase('author__team__name') == 'team_name'
        assert options.get_aliase('title') == 'title'
Пример #5
0
    def test_create_instance(self):
        class Meta:
            model = Article
            fields = (
                'author__team__name',
                'author__name',
                'title',
            )
            order_fields = (
                'author__team',
                'author__name',
                'title',
            )
            order_field_name = 'sort_condition'
            keyword_fields = (
                'author__team__name',
                'author__name',
                'title',
                'body',
            )
            keyword_field_name = 'keyword_text'
            widgets = {
                'author__team__name': forms.Textarea,
                'author__name': forms.Textarea,
                'title': forms.Textarea,
            }
            labels = {
                'author__team__name': 'team name',
                'author__name': 'author name',
                'title': 'article title',
            }
            help_texts = {
                'author__team__name': 'team name help text',
                'author__name': 'author name help text',
                'title': 'article title help text',
            }
            error_messages = {
                NON_FIELD_ERRORS: {
                    'unique_together':
                    "%(model_name)s's %(field_labels)s are not unique.",
                }
            }

        options = SearchFormOptions(Meta)
        assert options
        assert isinstance(options.fields, OrderedDict)
        assert options.order_fields == Meta.order_fields
        assert options.order_field_name == Meta.order_field_name
        assert options.keyword_fields == Meta.keyword_fields
        assert options.keyword_field_name == Meta.keyword_field_name
        assert options.widgets == Meta.widgets
        assert options.labels == Meta.labels
        assert options.help_texts == Meta.help_texts
        assert options.error_messages == Meta.error_messages
        assert isinstance(options.lookups, dict)
        assert isinstance(options.aliases, dict)

        for field, opts in six.iteritems(options.fields):
            assert isinstance(field, six.string_types)
            assert isinstance(opts, dict)
            assert opts['lookup'] is None
            assert opts['as'] is None
            assert options.lookups[field] == opts['lookup']
            assert options.aliases[field] == opts['as']