From 4832c3583eedf708c3d3c0823e1f355524150ead Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Tue, 13 Nov 2018 15:26:17 +0100 Subject: [PATCH 1/2] [FIX] base_external_dbsource_sqlite crashing when sqlparams equal None --- base_external_dbsource_sqlite/__manifest__.py | 2 +- .../models/base_external_dbsource.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/base_external_dbsource_sqlite/__manifest__.py b/base_external_dbsource_sqlite/__manifest__.py index 601248f4..6aee9378 100644 --- a/base_external_dbsource_sqlite/__manifest__.py +++ b/base_external_dbsource_sqlite/__manifest__.py @@ -3,7 +3,7 @@ # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). { 'name': 'External Database Source - SQLite', - 'version': '11.0.1.0.0', + 'version': '11.0.1.0.1', 'category': 'Tools', 'author': "Daniel Reis, " "LasLabs, " diff --git a/base_external_dbsource_sqlite/models/base_external_dbsource.py b/base_external_dbsource_sqlite/models/base_external_dbsource.py index 5e00bf69..ca62ceef 100644 --- a/base_external_dbsource_sqlite/models/base_external_dbsource.py +++ b/base_external_dbsource_sqlite/models/base_external_dbsource.py @@ -51,7 +51,10 @@ class BaseExternalDbsource(models.Model): rows, cols = list(), list() for record in self: with record.connection_open() as connection: - cur = connection.execute(sqlquery, sqlparams) + if sqlparams is None: + cur = connection.execute(sqlquery) + else: + cur = connection.execute(sqlquery, sqlparams) if metadata: cols = list(cur.keys()) rows = [r for r in cur] From 6efcc23630b8406d2ad2ecf4113c777af60f446b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Thu, 15 Nov 2018 10:29:31 +0100 Subject: [PATCH 2/2] Extend test coverage --- .../tests/test_base_external_dbsource.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/base_external_dbsource_sqlite/tests/test_base_external_dbsource.py b/base_external_dbsource_sqlite/tests/test_base_external_dbsource.py index 2aa11922..ec4b1c7d 100644 --- a/base_external_dbsource_sqlite/tests/test_base_external_dbsource.py +++ b/base_external_dbsource_sqlite/tests/test_base_external_dbsource.py @@ -39,3 +39,12 @@ class TestBaseExternalDbsource(common.TransactionCase): ) as parent_method: self.dbsource.execute_sqlite(*expect) parent_method.assert_called_once_with(*expect) + + def test_execute_sqlit_without_sqlparams(self): + """ It should pass args to SQLAlchemy execute """ + expect = 'sqlquery', None, 'metadata' + with mock.patch.object( + self.dbsource, '_execute_sqlalchemy' + ) as parent_method: + self.dbsource.execute_sqlite(*expect) + parent_method.assert_called_once_with(*expect)