Added basic test for list_filter feature

This commit is contained in:
Michal Kuffa 2013-07-06 17:39:36 +02:00
parent 229db4ff86
commit 075f887837
2 changed files with 73 additions and 0 deletions

View file

@ -5,3 +5,4 @@ from test_permissions import *
from test_modelforms import *
from test_views import *
from test_nestedobjects import *
from test_filters import *

View file

@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
from django.test import TestCase
from django.contrib.auth import get_user_model
from django.test.client import RequestFactory
from django.core.urlresolvers import reverse
from ..models import Post
import djadmin2
import djadmin2.filters as djadmin2_filters
import django_filters
class PostAdminSimple(djadmin2.ModelAdmin2):
list_filter = ['published', ]
class PostAdminWithFilterInstances(djadmin2.ModelAdmin2):
list_filter = [
django_filters.BooleanFilter(name='published'),
]
class FS(django_filters.FilterSet):
class Meta:
model = Post
fields = ['published']
class PostAdminWithFilterSetInst(djadmin2.ModelAdmin2):
list_filter = FS
class ListFilterBuilderTest(TestCase):
def setUp(self):
self.rf = RequestFactory()
def test_filter_building(self):
Post.objects.create(title="post_1_title", body="body")
Post.objects.create(title="post_2_title", body="another body")
request = self.rf.get(reverse("admin2:dashboard"))
list_filter_inst = djadmin2_filters.build_list_filter(
request,
PostAdminSimple,
Post.objects.all(),
)
self.assertTrue(
issubclass(list_filter_inst.__class__, django_filters.FilterSet)
)
self.assertEqual(
list_filter_inst.filters['published'].widget,
djadmin2_filters.NullBooleanLinksWidget,
)
list_filter_inst = djadmin2_filters.build_list_filter(
request,
PostAdminWithFilterInstances,
Post.objects.all(),
)
self.assertNotEqual(
list_filter_inst.filters['published'].widget,
djadmin2_filters.NullBooleanLinksWidget,
)
list_filter_inst = djadmin2_filters.build_list_filter(
request,
PostAdminWithFilterSetInst,
Post.objects.all(),
)
self.assertTrue(isinstance(list_filter_inst, FS))