summaryrefslogtreecommitdiff
path: root/tests/composite_pk
diff options
context:
space:
mode:
Diffstat (limited to 'tests/composite_pk')
-rw-r--r--tests/composite_pk/models/__init__.py3
-rw-r--r--tests/composite_pk/models/tenant.py6
-rw-r--r--tests/composite_pk/tests.py8
3 files changed, 15 insertions, 2 deletions
diff --git a/tests/composite_pk/models/__init__.py b/tests/composite_pk/models/__init__.py
index 5996ae33b0..ec5e914b41 100644
--- a/tests/composite_pk/models/__init__.py
+++ b/tests/composite_pk/models/__init__.py
@@ -1,8 +1,9 @@
-from .tenant import Comment, Post, Tenant, TimeStamped, Token, User
+from .tenant import Comment, Post, PostDbDefault, Tenant, TimeStamped, Token, User
__all__ = [
"Comment",
"Post",
+ "PostDbDefault",
"Tenant",
"TimeStamped",
"Token",
diff --git a/tests/composite_pk/models/tenant.py b/tests/composite_pk/models/tenant.py
index 65eb0feae8..4aff6d360e 100644
--- a/tests/composite_pk/models/tenant.py
+++ b/tests/composite_pk/models/tenant.py
@@ -55,6 +55,12 @@ class Post(models.Model):
id = models.UUIDField(default=uuid.uuid4)
+class PostDbDefault(models.Model):
+ pk = models.CompositePrimaryKey("tenant_id", "id")
+ tenant = models.ForeignKey(Tenant, on_delete=models.CASCADE, default=1)
+ id = models.IntegerField(db_default=1)
+
+
class TimeStamped(models.Model):
pk = models.CompositePrimaryKey("id", "created")
id = models.SmallIntegerField(unique=True)
diff --git a/tests/composite_pk/tests.py b/tests/composite_pk/tests.py
index 264a1bb7c2..4284f9d627 100644
--- a/tests/composite_pk/tests.py
+++ b/tests/composite_pk/tests.py
@@ -17,7 +17,7 @@ from django.db.models import CompositePrimaryKey
from django.forms import modelform_factory
from django.test import TestCase
-from .models import Comment, Post, Tenant, TimeStamped, Token, User
+from .models import Comment, Post, PostDbDefault, Tenant, TimeStamped, Token, User
class CommentForm(forms.ModelForm):
@@ -64,6 +64,12 @@ class CompositePKTests(TestCase):
self.assertIsNone(user.id)
self.assertIs(user._is_pk_set(), False)
+ def test_pk_not_set_db_default(self):
+ post = PostDbDefault(tenant=self.tenant)
+ self.assertEqual(post.tenant_id, self.tenant.pk)
+ self.assertIsNotNone(post.id)
+ self.assertIs(post._is_pk_set(), False)
+
def test_hash(self):
self.assertEqual(hash(User(pk=(1, 2))), hash((1, 2)))
self.assertEqual(hash(User(tenant_id=2, id=3)), hash((2, 3)))