Merge "Raise cx_Oracle minimum version to 5.2" into rel_1_2

This commit is contained in:
mike bayer
2018-03-08 12:36:53 -05:00
committed by Gerrit Code Review
3 changed files with 28 additions and 3 deletions
+8
View File
@@ -0,0 +1,8 @@
.. 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.
+2 -2
View File
@@ -614,9 +614,9 @@ class OracleDialect_cx_oracle(OracleDialect):
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")
+18 -1
View File
@@ -28,7 +28,8 @@ import datetime
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):
@@ -49,6 +50,22 @@ class DialectTest(fixtures.TestBase):
(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'