Skip to content

Commit 058cfbe

Browse files
author
Ryan P Kilby
committed
Break apart tests into multiple 'TestCase's
1 parent fdc48e9 commit 058cfbe

File tree

1 file changed

+52
-18
lines changed

1 file changed

+52
-18
lines changed

tests/test_filterset.py

Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,7 @@ def generateTestData(cls):
124124
C.objects.create(title="C3")
125125

126126
john = Person.objects.create(name="John")
127-
128-
# Created at least one second apart
129-
mark = Person.objects.create(name="Mark", best_friend=john)
130-
mark.time_joined = add_timedelta(mark.time_joined, datetime.timedelta(seconds=1))
131-
mark.datetime_joined += datetime.timedelta(seconds=1)
132-
mark.save()
127+
Person.objects.create(name="Mark", best_friend=john)
133128

134129
def test_alllookupsfilter(self):
135130
# Test __iendswith
@@ -317,6 +312,39 @@ def test_m2m_relation(self):
317312
titles = set([p.title for p in f])
318313
self.assertEqual(titles, set(["First post", "Second post"]))
319314

315+
def test_get_filterset_subset(self):
316+
related_filter = NoteFilterWithRelated.base_filters['author']
317+
filterset_class = related_filter.get_filterset_subset(['email'])
318+
319+
# ensure that the class name is useful when debugging
320+
self.assertEqual(filterset_class.__name__, 'UserFilterSubset')
321+
322+
# ensure that the FilterSet subset only contains the requested fields
323+
self.assertIn('email', filterset_class.base_filters)
324+
self.assertEqual(len(filterset_class.base_filters), 1)
325+
326+
327+
class DatetimeTests(TestCase):
328+
329+
if django.VERSION >= (1, 8):
330+
@classmethod
331+
def setUpTestData(cls):
332+
cls.generateTestData()
333+
334+
else:
335+
def setUp(self):
336+
self.generateTestData()
337+
338+
@classmethod
339+
def generateTestData(cls):
340+
john = Person.objects.create(name="John")
341+
342+
# Created at least one second apart
343+
mark = Person.objects.create(name="Mark", best_friend=john)
344+
mark.time_joined = add_timedelta(mark.time_joined, datetime.timedelta(seconds=1))
345+
mark.datetime_joined += datetime.timedelta(seconds=1)
346+
mark.save()
347+
320348
def test_implicit_date_filters(self):
321349
john = Person.objects.get(name="John")
322350
# Mark was created at least one second after John.
@@ -397,6 +425,23 @@ class Meta:
397425
p = list(f)[0]
398426
self.assertEqual(p.name, "John")
399427

428+
429+
class FilterOverrideTests(TestCase):
430+
431+
if django.VERSION >= (1, 8):
432+
@classmethod
433+
def setUpTestData(cls):
434+
cls.generateTestData()
435+
436+
else:
437+
def setUp(self):
438+
self.generateTestData()
439+
440+
@classmethod
441+
def generateTestData(cls):
442+
john = Person.objects.create(name="John")
443+
Person.objects.create(name="Mark", best_friend=john)
444+
400445
def test_inset_number_filter(self):
401446
p1 = Person.objects.get(name="John").pk
402447
p2 = Person.objects.get(name="Mark").pk
@@ -434,17 +479,6 @@ def test_inset_number_filter(self):
434479
self.assertIn(p1, f)
435480
self.assertIn(p2, f)
436481

437-
def test_get_filterset_subset(self):
438-
related_filter = NoteFilterWithRelated.base_filters['author']
439-
filterset_class = related_filter.get_filterset_subset(['email'])
440-
441-
# ensure that the class name is useful when debugging
442-
self.assertEqual(filterset_class.__name__, 'UserFilterSubset')
443-
444-
# ensure that the FilterSet subset only contains the requested fields
445-
self.assertIn('email', filterset_class.base_filters)
446-
self.assertEqual(len(filterset_class.base_filters), 1)
447-
448482
def test_inset_char_filter(self):
449483
p1 = Person.objects.get(name="John").name
450484
p2 = Person.objects.get(name="Mark").name
@@ -483,7 +517,7 @@ def test_inset_char_filter(self):
483517
self.assertIn(p2, f)
484518

485519

486-
class FilterSetExclutionTests(TestCase):
520+
class FilterExclusionTests(TestCase):
487521

488522
if django.VERSION >= (1, 8):
489523
@classmethod

0 commit comments

Comments
 (0)