summaryrefslogtreecommitdiff
path: root/tests/model_fields/test_custom_fields.py
blob: c41e19416e18c5b23fae74d0d978608df4e9184b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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)