From c6334f903f532883fadff4a300da3532599bb703 Mon Sep 17 00:00:00 2001 From: Yann Date: Thu, 16 Jun 2016 10:57:29 +0200 Subject: [PATCH] Bugfixes in LeGetQuery + more tests on LeObject.get <-> LeGetQuery --- lodel/leapi/query.py | 6 +++--- runtest | 1 - tests/leapi/test_leobject.py | 25 +++++++++++++++++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/lodel/leapi/query.py b/lodel/leapi/query.py index 545fcf0..75ad4e4 100644 --- a/lodel/leapi/query.py +++ b/lodel/leapi/query.py @@ -528,7 +528,7 @@ target to LeUpdateQuery constructor" #@returns the number of updated items #@todo change stategy for instance update. Datas should be allowed #for execute method (and query) - def _query(self, filters, rel_filters, datas): + def _query(self, datas): uid_name = self._target_class._uid[0] if self.__leobject_instance is not None: #Instance update @@ -629,7 +629,7 @@ class LeGetQuery(LeFilteredQuery): if 'group' in kwargs: #check kwargs['group'] self.__group = kwargs['group'] - if 'limit' in kwargs: + if 'limit' in kwargs and kwargs['limit'] is not None: try: self.__limit = int(kwargs['limit']) if self.__limit <= 0: @@ -670,7 +670,7 @@ class LeGetQuery(LeFilteredQuery): ##@brief Implements select query operations # @returns a list containing the item(s) - def _query(self): + def _query(self, datas = None): # select datas corresponding to query_filter l_datas=self._ro_datasource.select( self._target_class, list(self.field_list), diff --git a/runtest b/runtest index f16a293..c80e83e 100755 --- a/runtest +++ b/runtest @@ -54,7 +54,6 @@ cp -R tests $testdir cd $testdir rm -R conf.d && mv tests/tests_conf.d conf.d make -#python3 -W ignore -m unittest $@ python3 loader.py $@ rm -Rf $testdir diff --git a/tests/leapi/test_leobject.py b/tests/leapi/test_leobject.py index ad739f6..2aae506 100644 --- a/tests/leapi/test_leobject.py +++ b/tests/leapi/test_leobject.py @@ -243,3 +243,28 @@ class LeObjectQueryMockTestCase(unittest.TestCase): self.assertEqual(res.d.lodel_id, 1) self.assertEqual(res.d.firstname, 'foo') self.assertEqual(res.d.lastname, 'bar') + + def test_get_mini(self): + """ Checking that LeObject.get method calls LeGetQuery correctly + when called with minimum args """ + + with patch.object( + LeGetQuery, '__init__', return_value = None) as mock_init: + + try: + dyncode.Person.get(['lodel_id = 1']) + except AttributeError: + pass + + mock_init.assert_called_once_with( + dyncode.Person, + query_filters = ['lodel_id = 1'], + field_list = dyncode.Person.fieldnames(True), + order = None, group = None, limit = None, offset = 0) + + with patch.object( + LeGetQuery, 'execute', return_value = []) as mock_exec: + + dyncode.Person.get(['lodel_id = 1']) + mock_exec.assert_called_once_with() +