diff options
| author | SaJH <wogur981208@gmail.com> | 2025-04-15 03:06:49 +0900 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2025-04-17 17:23:06 +0200 |
| commit | 1831f7733d3ef03d1ca7fac3e8d9f4c5e3e3375e (patch) | |
| tree | 8afb3f55f29eb7f3d3b1db92d36c19dfbf78a1fb /tests | |
| parent | d755a98b8438c10f3cff61303ceb1fe16d414e9b (diff) | |
Fixed #36326 -- Added CompositePrimaryKey support in QuerySet.raw().
Signed-off-by: SaJH <wogur981208@gmail.com>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/composite_pk/tests.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/composite_pk/tests.py b/tests/composite_pk/tests.py index 18fa53d9c0..5dea23c9f2 100644 --- a/tests/composite_pk/tests.py +++ b/tests/composite_pk/tests.py @@ -11,7 +11,7 @@ except ImportError: from django import forms from django.core import serializers -from django.core.exceptions import FieldError +from django.core.exceptions import FieldDoesNotExist, FieldError from django.db import IntegrityError, connection from django.db.models import CompositePrimaryKey from django.forms import modelform_factory @@ -158,6 +158,20 @@ class CompositePKTests(TestCase): users = User.objects.values_list("pk").order_by("pk") self.assertNotIn('AS "pk"', str(users.query)) + def test_raw(self): + users = User.objects.raw("SELECT * FROM composite_pk_user") + self.assertEqual(len(users), 1) + user = users[0] + self.assertEqual(user.tenant_id, self.user.tenant_id) + self.assertEqual(user.id, self.user.id) + self.assertEqual(user.email, self.user.email) + + def test_raw_missing_PK_fields(self): + query = "SELECT tenant_id, email FROM composite_pk_user" + msg = "Raw query must include the primary key" + with self.assertRaisesMessage(FieldDoesNotExist, msg): + list(User.objects.raw(query)) + def test_only(self): users = User.objects.only("pk") self.assertSequenceEqual(users, (self.user,)) |
