summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2016-04-23 19:13:31 +0200
committerClaude Paroz <claude@2xlibre.net>2016-05-04 20:02:01 +0200
commit388bb5bd9aa3cd43825cd8a3632a57d8204f875f (patch)
treeae1d5c1d06234b79ec3a668df2e4926f73d30ce7 /tests
parent1206eea11e506c4e740ba2f0c1feaa01452d804b (diff)
Fixed #22936 -- Obsoleted Field.get_prep_lookup()/get_db_prep_lookup()
Thanks Tim Graham for completing the initial patch.
Diffstat (limited to 'tests')
-rw-r--r--tests/model_fields/test_booleanfield.py26
-rw-r--r--tests/model_fields/test_custom_fields.py22
-rw-r--r--tests/model_fields/test_decimalfield.py7
-rw-r--r--tests/queries/tests.py5
4 files changed, 19 insertions, 41 deletions
diff --git a/tests/model_fields/test_booleanfield.py b/tests/model_fields/test_booleanfield.py
index 2975f4723c..9c90bb5709 100644
--- a/tests/model_fields/test_booleanfield.py
+++ b/tests/model_fields/test_booleanfield.py
@@ -1,29 +1,29 @@
from django.core.exceptions import ValidationError
-from django.db import IntegrityError, connection, models, transaction
+from django.db import IntegrityError, models, transaction
from django.test import SimpleTestCase, TestCase
from .models import BooleanModel, FksToBooleans, NullBooleanModel
class BooleanFieldTests(TestCase):
- def _test_get_db_prep_lookup(self, f):
- self.assertEqual(f.get_db_prep_lookup('exact', True, connection=connection), [True])
- self.assertEqual(f.get_db_prep_lookup('exact', '1', connection=connection), [True])
- self.assertEqual(f.get_db_prep_lookup('exact', 1, connection=connection), [True])
- self.assertEqual(f.get_db_prep_lookup('exact', False, connection=connection), [False])
- self.assertEqual(f.get_db_prep_lookup('exact', '0', connection=connection), [False])
- self.assertEqual(f.get_db_prep_lookup('exact', 0, connection=connection), [False])
- self.assertEqual(f.get_db_prep_lookup('exact', None, connection=connection), [None])
+ def _test_get_prep_value(self, f):
+ self.assertEqual(f.get_prep_value(True), True)
+ self.assertEqual(f.get_prep_value('1'), True)
+ self.assertEqual(f.get_prep_value(1), True)
+ self.assertEqual(f.get_prep_value(False), False)
+ self.assertEqual(f.get_prep_value('0'), False)
+ self.assertEqual(f.get_prep_value(0), False)
+ self.assertEqual(f.get_prep_value(None), None)
def _test_to_python(self, f):
self.assertIs(f.to_python(1), True)
self.assertIs(f.to_python(0), False)
- def test_booleanfield_get_db_prep_lookup(self):
- self._test_get_db_prep_lookup(models.BooleanField())
+ def test_booleanfield_get_prep_value(self):
+ self._test_get_prep_value(models.BooleanField())
- def test_nullbooleanfield_get_db_prep_lookup(self):
- self._test_get_db_prep_lookup(models.NullBooleanField())
+ def test_nullbooleanfield_get_prep_value(self):
+ self._test_get_prep_value(models.NullBooleanField())
def test_booleanfield_to_python(self):
self._test_to_python(models.BooleanField())
diff --git a/tests/model_fields/test_custom_fields.py b/tests/model_fields/test_custom_fields.py
deleted file mode 100644
index c41e19416e..0000000000
--- a/tests/model_fields/test_custom_fields.py
+++ /dev/null
@@ -1,22 +0,0 @@
-from django.db import connection, models
-from django.test import SimpleTestCase
-
-
-class CustomFieldTests(SimpleTestCase):
-
- def test_get_prep_value_count(self):
- """
- Field values are not prepared twice in get_db_prep_lookup() (#14786).
- """
- class NoopField(models.TextField):
- def __init__(self, *args, **kwargs):
- self.prep_value_count = 0
- super(NoopField, self).__init__(*args, **kwargs)
-
- def get_prep_value(self, value):
- self.prep_value_count += 1
- return super(NoopField, self).get_prep_value(value)
-
- field = NoopField()
- field.get_db_prep_lookup('exact', 'TEST', connection=connection, prepared=False)
- self.assertEqual(field.prep_value_count, 1)
diff --git a/tests/model_fields/test_decimalfield.py b/tests/model_fields/test_decimalfield.py
index af9bd6c4be..0414581816 100644
--- a/tests/model_fields/test_decimalfield.py
+++ b/tests/model_fields/test_decimalfield.py
@@ -2,7 +2,7 @@ from decimal import Decimal
from django.core import validators
from django.core.exceptions import ValidationError
-from django.db import connection, models
+from django.db import models
from django.test import TestCase
from .models import BigD, Foo
@@ -27,9 +27,10 @@ class DecimalFieldTests(TestCase):
self.assertEqual(f._format(f.to_python('2.6')), '2.6')
self.assertEqual(f._format(None), None)
- def test_get_db_prep_lookup(self):
+ def test_get_prep_value(self):
f = models.DecimalField(max_digits=5, decimal_places=1)
- self.assertEqual(f.get_db_prep_lookup('exact', None, connection=connection), [None])
+ self.assertEqual(f.get_prep_value(None), None)
+ self.assertEqual(f.get_prep_value('2.4'), Decimal('2.4'))
def test_filter_with_strings(self):
"""
diff --git a/tests/queries/tests.py b/tests/queries/tests.py
index 098f47b8d1..6af66ba7f9 100644
--- a/tests/queries/tests.py
+++ b/tests/queries/tests.py
@@ -1229,9 +1229,8 @@ class Queries2Tests(TestCase):
)
def test_ticket12239(self):
- # Float was being rounded to integer on gte queries on integer field. Tests
- # show that gt, lt, gte, and lte work as desired. Note that the fix changes
- # get_prep_lookup for gte and lt queries only.
+ # Custom lookups are registered to round float values correctly on gte
+ # and lt IntegerField queries.
self.assertQuerysetEqual(
Number.objects.filter(num__gt=11.9),
['<Number: 12>']