Commit 56252e7f authored by Shai Berger's avatar Shai Berger
Browse files

Fixed schema test for Oracle 11.2.0.1 which is used in Django Project's CI.

Refs #23073 Workaround.

Refs #22738 Repeats the mysql "offense". When the issue is solved, the
Oracle special case should be made to play with the solution (that is,
Oracle should be fixed the same way that mysql and the 3rd-party backneds
are).
parent b902be79
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -704,14 +704,21 @@ class DatabaseWrapper(BaseDatabaseWrapper):
            return True

    @cached_property
    def oracle_version(self):
    def oracle_full_version(self):
        with self.temporary_connection():
            version = self.connection.version
            return self.connection.version

    @cached_property
    def oracle_version(self):
        try:
            return int(version.split('.')[0])
            return int(self.oracle_full_version.split('.')[0])
        except ValueError:
            return None

    @cached_property
    def version_has_default_introspection_bug(self):
        return self.oracle_full_version < '11.2.0.2'


class OracleParam(object):
    """
+3 −0
Original line number Diff line number Diff line
@@ -318,6 +318,9 @@ class SchemaTests(TransactionTestCase):
        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')