summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTakayuki Hirayama <hirayama@atama.plus>2021-06-04 00:32:55 +0900
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-06-04 07:23:16 +0200
commit0393b9262dcf1b8302d35a8a470e14837ca1300b (patch)
tree3a455c3a9dad1f709b8da909cfc6def3fe25a697 /tests
parentf10c52afabac25f2c10aca26d32dbe7e0e46082e (diff)
Fixed #32812 -- Restored immutability of named values from QuerySet.values_list().
Regression in 981a072dd4dec586f8fc606712ed9a2ef116eeee. Thanks pirelle for the report.
Diffstat (limited to 'tests')
-rw-r--r--tests/model_utils/__init__.py0
-rw-r--r--tests/model_utils/tests.py10
-rw-r--r--tests/prefetch_related/tests.py7
3 files changed, 17 insertions, 0 deletions
diff --git a/tests/model_utils/__init__.py b/tests/model_utils/__init__.py
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/tests/model_utils/__init__.py
diff --git a/tests/model_utils/tests.py b/tests/model_utils/tests.py
new file mode 100644
index 0000000000..be4dd4300b
--- /dev/null
+++ b/tests/model_utils/tests.py
@@ -0,0 +1,10 @@
+from django.db.models.utils import create_namedtuple_class
+from django.test import SimpleTestCase
+
+
+class NamedTupleClassTests(SimpleTestCase):
+ def test_immutability(self):
+ row_class = create_namedtuple_class('field1', 'field2')
+ row = row_class('value1', 'value2')
+ with self.assertRaises(AttributeError):
+ row.field3 = 'value3'
diff --git a/tests/prefetch_related/tests.py b/tests/prefetch_related/tests.py
index e21bd5ec23..cba1897fc5 100644
--- a/tests/prefetch_related/tests.py
+++ b/tests/prefetch_related/tests.py
@@ -309,6 +309,13 @@ class PrefetchRelatedTests(TestDataMixin, TestCase):
list(Book.objects.prefetch_related(relation))
self.assertEqual(add_q_mock.call_count, 1)
+ def test_named_values_list(self):
+ qs = Author.objects.prefetch_related('books')
+ self.assertCountEqual(
+ [value.name for value in qs.values_list('name', named=True)],
+ ['Anne', 'Charlotte', 'Emily', 'Jane'],
+ )
+
class RawQuerySetTests(TestDataMixin, TestCase):
def test_basic(self):