summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/model_fields/tests.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py
index abc5273d90..206ac8c84c 100644
--- a/tests/model_fields/tests.py
+++ b/tests/model_fields/tests.py
@@ -266,3 +266,26 @@ class GetChoicesOrderingTests(TestCase):
self.field.remote_field.get_choices(include_blank=False),
[self.bar2, self.bar1]
)
+
+
+class GetChoicesLimitChoicesToTests(TestCase):
+ @classmethod
+ def setUpTestData(cls):
+ cls.foo1 = Foo.objects.create(a='a', d='12.34')
+ cls.foo2 = Foo.objects.create(a='b', d='12.34')
+ cls.bar1 = Bar.objects.create(a=cls.foo1, b='b')
+ cls.bar2 = Bar.objects.create(a=cls.foo2, b='a')
+ cls.field = Bar._meta.get_field('a')
+
+ def assertChoicesEqual(self, choices, objs):
+ self.assertEqual(choices, [(obj.pk, str(obj)) for obj in objs])
+
+ def test_get_choices(self):
+ self.assertChoicesEqual(
+ self.field.get_choices(include_blank=False, limit_choices_to={'a': 'a'}),
+ [self.foo1],
+ )
+ self.assertChoicesEqual(
+ self.field.get_choices(include_blank=False, limit_choices_to={}),
+ [self.foo1, self.foo2],
+ )