From 295249c901e13ec1703ada5c414cd97aba72f3e9 Mon Sep 17 00:00:00 2001 From: Anv3sh Date: Thu, 12 May 2022 01:00:13 +0530 Subject: Fixed #32234 -- Made inspectdb inform about composite primary keys. --- tests/inspectdb/tests.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'tests') 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) -- cgit v1.3