def test_order_no_marker(self): model_mock = mock.MagicMock() search_mock = mock.MagicMock(filters=None, marker=None, limit=mock.sentinel.limit) search_mock.get_order_by.return_value = [mock.sentinel.spec_order] api.get_many(self.sess, model_mock, search_mock) self.assertFalse(model_mock.get_default_order_by.called) search_mock.get_order_by.assert_called_once_with() self.query.order_by.assert_called_once_with(mock.sentinel.spec_order)
def test_filter_by(self): model_mock = mock.MagicMock() model_mock.get_default_order_by.return_value = [mock.sentinel.def_order] filters = {"field": mock.sentinel.field} search_mock = mock.MagicMock(filters=filters, marker=None, limit=mock.sentinel.limit) search_mock.get_order_by.return_value = None api.get_many(self.sess, model_mock, search_mock) self.query.filter_by.assert_called_once_with(field=mock.sentinel.field)
def get_many(self, obj_type, search_spec): """ Returns a list of Python dicts of records that match the supplied search spec. :param obj_type: A `procession.objects.Object` class. :param search_spec: A `procession.search.SearchSpec` object. """ sess = self._get_session() model = _get_db_model_from_obj_class(obj_type) db_models = api.get_many(sess, model, search_spec) return [db_model.to_dict() for db_model in db_models]
def test_no_filters_no_order_no_marker(self): model_mock = mock.MagicMock() model_mock.get_default_order_by.return_value = [mock.sentinel.def_order] search_mock = mock.MagicMock(filters=None, marker=None, limit=mock.sentinel.limit) search_mock.get_order_by.return_value = None res = api.get_many(self.sess, model_mock, search_mock) model_mock.get_default_order_by.assert_called_once_with() search_mock.get_order_by.assert_called_once_with() self.sess.query.assert_called_once_with(model_mock) self.assertFalse(self.query.filter_by.called) self.query.limit.assert_called_once_with(mock.sentinel.limit) self.query.order_by.assert_called_once_with(mock.sentinel.def_order) self.query.all.assert_called_once_with() self.assertEqual(self.query.all.return_value, res)