Updated LimitChoicesToTests to use setUpTestData and cosmetic edits.

This commit is contained in:
Tim Graham 2016-12-02 13:57:27 -05:00
parent 6abd6c598e
commit 7ed456063b
1 changed files with 12 additions and 13 deletions

View File

@ -2813,43 +2813,42 @@ class StumpJokeWithCustomFieldForm(forms.ModelForm):
class Meta: class Meta:
model = StumpJoke model = StumpJoke
fields = () # We don't need any fields from the model fields = ()
class LimitChoicesToTest(TestCase): class LimitChoicesToTests(TestCase):
""" """
Tests the functionality of ``limit_choices_to``. Tests the functionality of ``limit_choices_to``.
""" """
def setUp(self): @classmethod
self.threepwood = Character.objects.create( def setUpTestData(cls):
cls.threepwood = Character.objects.create(
username='threepwood', username='threepwood',
last_action=datetime.datetime.today() + datetime.timedelta(days=1), last_action=datetime.datetime.today() + datetime.timedelta(days=1),
) )
self.marley = Character.objects.create( cls.marley = Character.objects.create(
username='marley', username='marley',
last_action=datetime.datetime.today() - datetime.timedelta(days=1), last_action=datetime.datetime.today() - datetime.timedelta(days=1),
) )
def test_limit_choices_to_callable_for_fk_rel(self): def test_limit_choices_to_callable_for_fk_rel(self):
""" """
A ForeignKey relation can use ``limit_choices_to`` as a callable, re #2554. A ForeignKey can use limit_choices_to as a callable (#2554).
""" """
stumpjokeform = StumpJokeForm() stumpjokeform = StumpJokeForm()
self.assertIn(self.threepwood, stumpjokeform.fields['most_recently_fooled'].queryset) self.assertSequenceEqual(stumpjokeform.fields['most_recently_fooled'].queryset, [self.threepwood])
self.assertNotIn(self.marley, stumpjokeform.fields['most_recently_fooled'].queryset)
def test_limit_choices_to_callable_for_m2m_rel(self): def test_limit_choices_to_callable_for_m2m_rel(self):
""" """
A ManyToMany relation can use ``limit_choices_to`` as a callable, re #2554. A ManyToManyField can use limit_choices_to as a callable (#2554).
""" """
stumpjokeform = StumpJokeForm() stumpjokeform = StumpJokeForm()
self.assertIn(self.threepwood, stumpjokeform.fields['has_fooled_today'].queryset) self.assertSequenceEqual(stumpjokeform.fields['most_recently_fooled'].queryset, [self.threepwood])
self.assertNotIn(self.marley, stumpjokeform.fields['has_fooled_today'].queryset)
def test_custom_field_with_queryset_but_no_limit_choices_to(self): def test_custom_field_with_queryset_but_no_limit_choices_to(self):
""" """
Regression test for #23795: Make sure a custom field with a `queryset` A custom field with a `queryset` attribute but no `limit_choices_to`
attribute but no `limit_choices_to` still works. works (#23795).
""" """
f = StumpJokeWithCustomFieldForm() f = StumpJokeWithCustomFieldForm()
self.assertEqual(f.fields['custom'].queryset, 42) self.assertEqual(f.fields['custom'].queryset, 42)