summaryrefslogtreecommitdiff
path: root/tests/inspectdb
diff options
context:
space:
mode:
authorAnv3sh <anveshgreat11@gmail.com>2022-05-12 01:00:13 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-06-01 08:40:44 +0200
commit295249c901e13ec1703ada5c414cd97aba72f3e9 (patch)
treea2997378671133fdb93ca12aa7f855e42f23f71d /tests/inspectdb
parentebf25555bbed3e9112d4b726575d60b242daf48a (diff)
Fixed #32234 -- Made inspectdb inform about composite primary keys.
Diffstat (limited to 'tests/inspectdb')
-rw-r--r--tests/inspectdb/tests.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/inspectdb/tests.py b/tests/inspectdb/tests.py
index 39d5b6cbe5..76c5e2b940 100644
--- a/tests/inspectdb/tests.py
+++ b/tests/inspectdb/tests.py
@@ -585,3 +585,32 @@ class InspectDBTransactionalTests(TransactionTestCase):
)
cursor.execute("DROP SERVER IF EXISTS inspectdb_server")
cursor.execute("DROP EXTENSION IF EXISTS file_fdw")
+
+ @skipUnlessDBFeature("create_test_table_with_composite_primary_key")
+ def test_composite_primary_key(self):
+ table_name = "test_table_composite_pk"
+ with connection.cursor() as cursor:
+ cursor.execute(
+ connection.features.create_test_table_with_composite_primary_key
+ )
+ out = StringIO()
+ if connection.vendor == "sqlite":
+ field_type = connection.features.introspected_field_types["AutoField"]
+ else:
+ field_type = connection.features.introspected_field_types["IntegerField"]
+ try:
+ call_command("inspectdb", table_name, stdout=out)
+ output = out.getvalue()
+ self.assertIn(
+ f"column_1 = models.{field_type}(primary_key=True) # The composite "
+ f"primary key (column_1, column_2) found, that is not supported. The "
+ f"first column is selected.",
+ output,
+ )
+ self.assertIn(
+ "column_2 = models.IntegerField()",
+ output,
+ )
+ finally:
+ with connection.cursor() as cursor:
+ cursor.execute("DROP TABLE %s" % table_name)