--- /dev/null
+.. change::
+ :tags: bug, oracle
+ :tickets: 4211
+ :versions: 1.3.0b1
+
+ The minimum cx_Oracle version supported is 5.2 (June 2015). Previously,
+ the dialect asserted against version 5.0 but as of 1.2.2 we are using some
+ symbols that did not appear until 5.2.
self.cx_oracle_ver = (0, 0, 0)
else:
self.cx_oracle_ver = self._parse_cx_oracle_ver(cx_Oracle.version)
- if self.cx_oracle_ver < (5, 0) and self.cx_oracle_ver > (0, 0, 0):
+ if self.cx_oracle_ver < (5, 2) and self.cx_oracle_ver > (0, 0, 0):
raise exc.InvalidRequestError(
- "cx_Oracle version 5.0 and above are supported")
+ "cx_Oracle version 5.2 and above are supported")
self._has_native_int = hasattr(cx_Oracle, "NATIVE_INT")
import os
from sqlalchemy import sql
from sqlalchemy.testing.mock import Mock
-
+from sqlalchemy.testing import mock
+from sqlalchemy import exc
class DialectTest(fixtures.TestBase):
def test_cx_oracle_version_parse(self):
(6, 0)
)
+ def test_minimum_version(self):
+ with mock.patch(
+ "sqlalchemy.dialects.oracle.cx_oracle.OracleDialect_cx_oracle."
+ "_parse_cx_oracle_ver", lambda self, vers: (5, 1, 5)):
+ assert_raises_message(
+ exc.InvalidRequestError,
+ "cx_Oracle version 5.2 and above are supported",
+ cx_oracle.OracleDialect_cx_oracle,
+ dbapi=Mock()
+ )
+
+ with mock.patch(
+ "sqlalchemy.dialects.oracle.cx_oracle.OracleDialect_cx_oracle."
+ "_parse_cx_oracle_ver", lambda self, vers: (5, 3, 1)):
+ cx_oracle.OracleDialect_cx_oracle(dbapi=Mock())
+
class OutParamTest(fixtures.TestBase, AssertsExecutionResults):
__only_on__ = 'oracle+cx_oracle'