From dbdae3a75512bddbf0b75ea6354fb3fc4bdb53cf Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 26 Sep 2014 08:43:50 +0200 Subject: Fixed #22738 -- Abstracted boolean field type introspection Thanks maxi for the report, Shai Berger for his help with the patch and Tim Graham for the review. --- tests/inspectdb/tests.py | 9 +++++---- tests/schema/tests.py | 11 ++--------- 2 files changed, 7 insertions(+), 13 deletions(-) (limited to 'tests') diff --git a/tests/inspectdb/tests.py b/tests/inspectdb/tests.py index fb72b3756f..8b187191ae 100644 --- a/tests/inspectdb/tests.py +++ b/tests/inspectdb/tests.py @@ -87,18 +87,19 @@ class InspectDBTestCase(TestCase): else: assertFieldType('big_int_field', "models.IntegerField()") - if connection.features.can_introspect_boolean_field: + if connection.features.introspected_boolean_field_type == 'BooleanField': assertFieldType('bool_field', "models.BooleanField()") if connection.features.can_introspect_null: assertFieldType('null_bool_field', "models.NullBooleanField()") else: assertFieldType('null_bool_field', "models.BooleanField()") else: - assertFieldType('bool_field', "models.IntegerField()") + field_type = connection.features.introspected_boolean_field_type + assertFieldType('bool_field', "models.{}()".format(field_type)) if connection.features.can_introspect_null: - assertFieldType('null_bool_field', "models.IntegerField(blank=True, null=True)") + assertFieldType('null_bool_field', "models.{}(blank=True, null=True)".format(field_type)) else: - assertFieldType('null_bool_field', "models.IntegerField()") + assertFieldType('null_bool_field', "models.{}()".format(field_type)) if connection.features.can_introspect_decimal_field: assertFieldType('decimal_field', "models.DecimalField(max_digits=6, decimal_places=1)") diff --git a/tests/schema/tests.py b/tests/schema/tests.py index 02207ff6e9..82377041dc 100644 --- a/tests/schema/tests.py +++ b/tests/schema/tests.py @@ -313,15 +313,8 @@ class SchemaTests(TransactionTestCase): # Ensure the field is right afterwards columns = self.column_classes(Author) # BooleanField are stored as TINYINT(1) on MySQL. - field_type, field_info = columns['awesome'] - if connection.vendor == 'mysql': - self.assertEqual(field_type, 'IntegerField') - self.assertEqual(field_info.precision, 1) - elif connection.vendor == 'oracle' and connection.version_has_default_introspection_bug: - self.assertEqual(field_type, 'IntegerField') - self.assertEqual(field_info.precision, 0) - else: - self.assertEqual(field_type, 'BooleanField') + field_type = columns['awesome'][0] + self.assertEqual(field_type, connection.features.introspected_boolean_field_type) def test_add_field_default_transform(self): """ -- cgit v1.3