You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.5 KiB
46 lines
1.5 KiB
# -*- coding: utf-8 -*-
|
|
# Copyright 2016 LasLabs Inc.
|
|
|
|
import mock
|
|
|
|
from odoo.tests import common
|
|
|
|
|
|
ADAPTER = ('odoo.addons.base_external_dbsource_odbc.models'
|
|
'.base_external_dbsource.pyodbc')
|
|
|
|
|
|
class TestBaseExternalDbsource(common.TransactionCase):
|
|
|
|
def setUp(self):
|
|
super(TestBaseExternalDbsource, self).setUp()
|
|
self.dbsource = self.env.ref(
|
|
'base_external_dbsource_odbc.demo_odbc',
|
|
)
|
|
|
|
def test_connection_close_pyodbc(self):
|
|
""" It should close the connection """
|
|
connection = mock.MagicMock()
|
|
res = self.dbsource.connection_close_pyodbc(connection)
|
|
self.assertEqual(res, connection.close())
|
|
|
|
@mock.patch(ADAPTER)
|
|
def test_connection_open_pyodbc(self, pyodbc):
|
|
""" It should open the connection with the full conn string """
|
|
self.dbsource.connection_open_pyodbc()
|
|
pyodbc.connect.assert_called_once_with(
|
|
self.dbsource.conn_string_full,
|
|
)
|
|
|
|
@mock.patch(ADAPTER)
|
|
def test_connection_open_pyodbc_return(self, pyodbc):
|
|
""" It should return the newly opened connection """
|
|
res = self.dbsource.connection_open_pyodbc()
|
|
self.assertEqual(res, pyodbc.connect())
|
|
|
|
def test_execute_pyodbc(self):
|
|
""" It should call the generic execute method w/ proper args """
|
|
expect = 'sqlquery', 'sqlparams', 'metadata'
|
|
with mock.patch.object(self.dbsource, '_execute_generic') as execute:
|
|
self.dbsource.execute_pyodbc(*expect)
|
|
execute.assert_called_once_with(*expect)
|