Пример #1
0
    def _fixture(self, view):
        class Error(Exception):
            pass

        dialect = pyodbc.MSDialect_pyodbc()
        dialect.dbapi = Mock(Error=Error)
        dialect.server_version_info = base.MS_2012_VERSION

        result = []

        def fail_on_exec(stmt,):
            if view is not None and view in stmt:
                result.append(("SERIALIZABLE",))
            else:
                raise Error("that didn't work")

        connection = Mock(
            cursor=Mock(
                return_value=Mock(
                    execute=fail_on_exec, fetchone=lambda: result[0]
                )
            )
        )

        return dialect, connection
Пример #2
0
    def _fixture(self, view_result):
        class Error(Exception):
            pass

        dialect = pyodbc.MSDialect_pyodbc()
        dialect.dbapi = Mock(Error=Error)
        dialect.server_version_info = base.MS_2012_VERSION

        result = []

        def fail_on_exec(stmt, ):
            result.clear()
            if "SELECT name FROM sys.system_views" in stmt:
                if view_result:
                    result.append((view_result, ))
            elif re.match(
                    ".*SELECT CASE transaction_isolation_level.*FROM sys.%s" %
                (view_result, ),
                    stmt,
                    re.S,
            ):
                result.append(("SERIALIZABLE", ))
            else:
                assert False

        connection = Mock(cursor=Mock(return_value=Mock(
            execute=fail_on_exec,
            fetchone=lambda: result[0] if result else None,
        )))

        return dialect, connection
Пример #3
0
    def test_pyodbc_version_fallback(self):
        dialect = pyodbc.MSDialect_pyodbc()
        dialect.dbapi = Mock()

        for vers, expected in [("11.0.9216.62", (11, 0, 9216, 62)),
                               ("notsqlserver.11.foo.0.9216.BAR.62",
                                (11, 0, 9216, 62)),
                               ("Not SQL Server Version 10.5", (5, ))]:
            conn = Mock(scalar=Mock(
                side_effect=exc.DBAPIError("stmt", "params", None)),
                        connection=Mock(getinfo=Mock(return_value=vers)))

            eq_(dialect._get_server_version_info(conn), expected)
Пример #4
0
    def test_pyodbc_version_productversion(self, mock_conn_scalar):
        dialect = pyodbc.MSDialect_pyodbc()

        conn = mock_conn_scalar("11.0.9216.62")
        eq_(dialect._get_server_version_info(conn), (11, 0, 9216, 62))
Пример #5
0
    def test_pyodbc_version_productversion(self):
        dialect = pyodbc.MSDialect_pyodbc()

        conn = Mock(scalar=Mock(return_value="11.0.9216.62"))
        eq_(dialect._get_server_version_info(conn), (11, 0, 9216, 62))