Fixed inspectdb.tests.InspectDBTestCase.test_custom_fields() on SQLite 3.37+.

Use FlexibleFieldLookupDict which is case-insensitive mapping because
SQLite 3.37+ returns some data type names upper-cased e.g. TEXT.
This commit is contained in:
Mariusz Felisiak 2021-12-09 20:24:38 +01:00 committed by GitHub
parent 17df72114e
commit 974e3b8750
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 6 deletions

View File

@ -312,18 +312,17 @@ class InspectDBTestCase(TestCase):
Introspection of columns with a custom field (#21090) Introspection of columns with a custom field (#21090)
""" """
out = StringIO() out = StringIO()
orig_data_types_reverse = connection.introspection.data_types_reverse with mock.patch(
try: 'django.db.connection.introspection.data_types_reverse.base_data_types_reverse',
connection.introspection.data_types_reverse = { {
'text': 'myfields.TextField', 'text': 'myfields.TextField',
'bigint': 'BigIntegerField', 'bigint': 'BigIntegerField',
} },
):
call_command('inspectdb', 'inspectdb_columntypes', stdout=out) call_command('inspectdb', 'inspectdb_columntypes', stdout=out)
output = out.getvalue() output = out.getvalue()
self.assertIn("text_field = myfields.TextField()", output) self.assertIn("text_field = myfields.TextField()", output)
self.assertIn("big_int_field = models.BigIntegerField()", output) self.assertIn("big_int_field = models.BigIntegerField()", output)
finally:
connection.introspection.data_types_reverse = orig_data_types_reverse
def test_introspection_errors(self): def test_introspection_errors(self):
""" """