test_custom_fields.py 792 B

12345678910111213141516171819202122
  1. from django.db import connection, models
  2. from django.test import SimpleTestCase
  3. class CustomFieldTests(SimpleTestCase):
  4. def test_get_prep_value_count(self):
  5. """
  6. Field values are not prepared twice in get_db_prep_lookup() (#14786).
  7. """
  8. class NoopField(models.TextField):
  9. def __init__(self, *args, **kwargs):
  10. self.prep_value_count = 0
  11. super(NoopField, self).__init__(*args, **kwargs)
  12. def get_prep_value(self, value):
  13. self.prep_value_count += 1
  14. return super(NoopField, self).get_prep_value(value)
  15. field = NoopField()
  16. field.get_db_prep_lookup('exact', 'TEST', connection=connection, prepared=False)
  17. self.assertEqual(field.prep_value_count, 1)