summaryrefslogtreecommitdiff
path: root/tests/model_fields/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/model_fields/models.py')
-rw-r--r--tests/model_fields/models.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/model_fields/models.py b/tests/model_fields/models.py
index 652c808b40..d9811ba164 100644
--- a/tests/model_fields/models.py
+++ b/tests/model_fields/models.py
@@ -609,3 +609,79 @@ class GeneratedModelNullVirtual(models.Model):
class Meta:
required_db_features = {"supports_virtual_generated_columns"}
+
+
+class GeneratedModelBase(models.Model):
+ a = models.IntegerField()
+ a_squared = models.GeneratedField(
+ expression=F("a") * F("a"),
+ output_field=models.IntegerField(),
+ db_persist=True,
+ )
+
+ class Meta:
+ abstract = True
+
+
+class GeneratedModelVirtualBase(models.Model):
+ a = models.IntegerField()
+ a_squared = models.GeneratedField(
+ expression=F("a") * F("a"),
+ output_field=models.IntegerField(),
+ db_persist=False,
+ )
+
+ class Meta:
+ abstract = True
+
+
+class GeneratedModelCheckConstraint(GeneratedModelBase):
+ class Meta:
+ required_db_features = {
+ "supports_stored_generated_columns",
+ "supports_table_check_constraints",
+ }
+ constraints = [
+ models.CheckConstraint(
+ condition=models.Q(a__gt=0),
+ name="Generated model check constraint a > 0",
+ )
+ ]
+
+
+class GeneratedModelCheckConstraintVirtual(GeneratedModelVirtualBase):
+ class Meta:
+ required_db_features = {
+ "supports_virtual_generated_columns",
+ "supports_table_check_constraints",
+ }
+ constraints = [
+ models.CheckConstraint(
+ condition=models.Q(a__gt=0),
+ name="Generated model check constraint virtual a > 0",
+ )
+ ]
+
+
+class GeneratedModelUniqueConstraint(GeneratedModelBase):
+ class Meta:
+ required_db_features = {
+ "supports_stored_generated_columns",
+ "supports_table_check_constraints",
+ }
+ constraints = [
+ models.UniqueConstraint(F("a"), name="Generated model unique constraint a"),
+ ]
+
+
+class GeneratedModelUniqueConstraintVirtual(GeneratedModelVirtualBase):
+ class Meta:
+ required_db_features = {
+ "supports_virtual_generated_columns",
+ "supports_expression_indexes",
+ }
+ constraints = [
+ models.UniqueConstraint(
+ F("a"), name="Generated model unique constraint virtual a"
+ ),
+ ]