summaryrefslogtreecommitdiff
path: root/tests/postgres_tests/test_array.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/postgres_tests/test_array.py')
-rw-r--r--tests/postgres_tests/test_array.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/postgres_tests/test_array.py b/tests/postgres_tests/test_array.py
index 0ff7198fc2..094a1e2235 100644
--- a/tests/postgres_tests/test_array.py
+++ b/tests/postgres_tests/test_array.py
@@ -347,7 +347,9 @@ class TestChecks(PostgreSQLTestCase):
model = MyModel()
errors = model.check()
self.assertEqual(len(errors), 1)
+ # The inner CharField is missing a max_length.
self.assertEqual(errors[0].id, 'postgres.E001')
+ self.assertIn('max_length', errors[0].msg)
def test_invalid_base_fields(self):
test_apps = Apps(['postgres_tests'])
@@ -363,6 +365,25 @@ class TestChecks(PostgreSQLTestCase):
self.assertEqual(len(errors), 1)
self.assertEqual(errors[0].id, 'postgres.E002')
+ def test_nested_field_checks(self):
+ """
+ Nested ArrayFields are permitted.
+ """
+ test_apps = Apps(['postgres_tests'])
+
+ class MyModel(PostgreSQLModel):
+ field = ArrayField(ArrayField(models.CharField()))
+
+ class Meta:
+ apps = test_apps
+
+ model = MyModel()
+ errors = model.check()
+ self.assertEqual(len(errors), 1)
+ # The inner CharField is missing a max_length.
+ self.assertEqual(errors[0].id, 'postgres.E001')
+ self.assertIn('max_length', errors[0].msg)
+
@unittest.skipUnless(connection.vendor == 'postgresql', "PostgreSQL specific tests")
class TestMigrations(TransactionTestCase):