diff options
Diffstat (limited to 'tests/composite_pk')
| -rw-r--r-- | tests/composite_pk/models/__init__.py | 3 | ||||
| -rw-r--r-- | tests/composite_pk/models/tenant.py | 6 | ||||
| -rw-r--r-- | tests/composite_pk/tests.py | 8 |
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))) |
