diff options
Diffstat (limited to 'tests/model_forms/tests.py')
| -rw-r--r-- | tests/model_forms/tests.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index 43bb770f7e..f706271106 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -25,6 +25,7 @@ from django.test import SimpleTestCase, TestCase, ignore_warnings, skipUnlessDBF from django.test.utils import isolate_apps from django.utils.choices import BlankChoiceIterator from django.utils.deprecation import RemovedInDjango60Warning +from django.utils.version import PYPY from .models import ( Article, @@ -3017,7 +3018,10 @@ class OtherModelFormTests(TestCase): return ", ".join(c.name for c in obj.colours.all()) field = ColorModelChoiceField(ColourfulItem.objects.prefetch_related("colours")) - with self.assertNumQueries(3): # would be 4 if prefetch is ignored + # CPython calls ModelChoiceField.__len__() when coercing to tuple. PyPy + # doesn't call __len__() and so .count() isn't called on the QuerySet. + # The following would trigger an extra query if prefetch were ignored. + with self.assertNumQueries(2 if PYPY else 3): self.assertEqual( tuple(field.choices), ( |
