summaryrefslogtreecommitdiff
path: root/tests/postgres_tests
diff options
context:
space:
mode:
authorDavid Sanders <shang.xiao.sanders@gmail.com>2024-08-05 08:22:29 +0200
committerSarah Boyce <42296566+sarahboyce@users.noreply.github.com>2024-08-05 17:42:19 +0200
commit333cfab512689490ea8a6a95598a94d77816fa2d (patch)
tree2783f13b4fb53f4c2b88f62a4a09715ceaa5d98e /tests/postgres_tests
parente88ef6a27d125da95e530be20b879fb4f540f7f6 (diff)
[5.0.x] Fixed #35638 -- Updated validate_constraints to consider db_default.
Backport of 509763c79952cde02d9f5b584af4278bdbed77b2 from main.
Diffstat (limited to 'tests/postgres_tests')
-rw-r--r--tests/postgres_tests/migrations/0002_create_test_models.py2
-rw-r--r--tests/postgres_tests/models.py2
-rw-r--r--tests/postgres_tests/test_constraints.py9
3 files changed, 11 insertions, 2 deletions
diff --git a/tests/postgres_tests/migrations/0002_create_test_models.py b/tests/postgres_tests/migrations/0002_create_test_models.py
index 011a0d729b..d5cae460d2 100644
--- a/tests/postgres_tests/migrations/0002_create_test_models.py
+++ b/tests/postgres_tests/migrations/0002_create_test_models.py
@@ -454,7 +454,7 @@ class Migration(migrations.Migration):
primary_key=True,
),
),
- ("ints", IntegerRangeField(null=True, blank=True)),
+ ("ints", IntegerRangeField(null=True, blank=True, db_default=(5, 10))),
("bigints", BigIntegerRangeField(null=True, blank=True)),
("decimals", DecimalRangeField(null=True, blank=True)),
("timestamps", DateTimeRangeField(null=True, blank=True)),
diff --git a/tests/postgres_tests/models.py b/tests/postgres_tests/models.py
index 05f2732fb8..0e81eea7ec 100644
--- a/tests/postgres_tests/models.py
+++ b/tests/postgres_tests/models.py
@@ -141,7 +141,7 @@ class LineSavedSearch(PostgreSQLModel):
class RangesModel(PostgreSQLModel):
- ints = IntegerRangeField(blank=True, null=True)
+ ints = IntegerRangeField(blank=True, null=True, db_default=(5, 10))
bigints = BigIntegerRangeField(blank=True, null=True)
decimals = DecimalRangeField(blank=True, null=True)
timestamps = DateTimeRangeField(blank=True, null=True)
diff --git a/tests/postgres_tests/test_constraints.py b/tests/postgres_tests/test_constraints.py
index e5a8e9dbe9..928947e225 100644
--- a/tests/postgres_tests/test_constraints.py
+++ b/tests/postgres_tests/test_constraints.py
@@ -1169,3 +1169,12 @@ class ExclusionConstraintTests(PostgreSQLTestCase):
constraint_name,
self.get_constraints(ModelWithExclusionConstraint._meta.db_table),
)
+
+ def test_database_default(self):
+ constraint = ExclusionConstraint(
+ name="ints_equal", expressions=[("ints", RangeOperators.EQUAL)]
+ )
+ RangesModel.objects.create()
+ msg = "Constraint “ints_equal” is violated."
+ with self.assertRaisesMessage(ValidationError, msg):
+ constraint.validate(RangesModel, RangesModel())