def test_set_public_limits_applied(self, run, wrap): request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) view.root_resource = Mock(auth=True) view.set_public_limits() wrap.set_public_limits.assert_called_once_with(view)
def test_set_public_limits_user_authenticated(self, run, wrap): request = Mock(content_type='', method='', accept=[''], user='******') view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) view.root_resource = Mock(auth=True) view.set_public_limits() assert not wrap.set_public_limits.called
def test_set_public_limits_no_root(self, run, wrap): request = Mock(content_type='', method='', accept=['']) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) view.root_resource = None view.set_public_limits() assert not wrap.set_public_limits.called
def test_add_before_or_after_after(self, run): request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) callable_ = lambda x: x view.add_before_or_after_call( action='foo', _callable=callable_, pos=None, before=False) assert callable_ in view._after_calls['foo']
def test_needs_confirmation(self, run): request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) view._query_params['__confirmation'] = '' assert not view.needs_confirmation() view._query_params.pop('__confirmation') assert view.needs_confirmation()
def test_add_before_or_after_not_callable(self, run): request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) with pytest.raises(ValueError) as ex: view.add_before_or_after_call( action='foo', _callable='asdasd', pos=None, before=False) assert str(ex.value) == 'asdasd is not a callable'
def test_id2obj_not_in_params(self, run): model = Mock() request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _json_params={'foo': 'bar'}, _query_params={'foo1': 'bar1'}) view.id2obj(name='asdasdasd', model=model) assert not model.pk_field.called assert not model.get.called
def test_convert_ids2objects_relational(self, run, id2obj, eng): request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _query_params={'foo1': 'bar'}, _json_params={'foo': 'bar'}) view._model_class = 'Model1' eng.is_relationship_field.return_value = True view.convert_ids2objects() eng.get_relationship_cls.assert_called_once_with('foo', 'Model1') id2obj.assert_called_once_with('foo', eng.get_relationship_cls())
def test_setup_default_wrappers_no_auth(self, run, wrap): request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) view.root_resource = Mock(auth=None) view.setup_default_wrappers() assert len(view._after_calls['index']) == 3 assert len(view._after_calls['show']) == 2 assert len(view._after_calls['delete']) == 1 assert len(view._after_calls['delete_many']) == 1 assert len(view._after_calls['update_many']) == 1 assert not wrap.apply_privacy.called
def test_id2obj_not_found(self, run): model = Mock() model.pk_field.return_value = 'idname' model.get.return_value = None request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _json_params={'foo': 'bar'}, _query_params={'foo1': 'bar1'}) view._json_params['user'] = '******' with pytest.raises(JHTTPBadRequest) as ex: view.id2obj(name='user', model=model) assert str(ex.value) == 'id2obj: Object 1 not found'
def test_subrequest_post(self, run, req, json): request = Mock( content_type='', method='', accept=[''], user=None, cookies=['1']) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) view.subrequest(url='http://', params={'par': 'val'}, method='POST') req.blank.assert_called_once_with( 'http://', cookies=['1'], content_type='application/json', method='POST') view.request.invoke_subrequest.assert_called_once_with(req.blank()) json.dumps.assert_called_once_with({'par': 'val'})
def test_id2obj_setdefault(self, run): model = Mock() model.pk_field.return_value = 'idname' model.get.return_value = None request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _json_params={'foo': 'bar'}, _query_params={'foo1': 'bar1'}) view._json_params['user'] = '******' view.id2obj(name='user', model=model, setdefault=123) assert view._json_params['user'] == 123 model.pk_field.assert_called_once_with() model.get.assert_called_once_with(idname='1')
def test_convert_dotted(self): converted = BaseView.convert_dotted({ 'settings.foo': 'bar', 'option': 'value' }) assert converted['settings'] == {'foo': 'bar'} assert converted['option'] == 'value' assert 'settings.foo' not in converted
def pop_aggregations_params(self): """ Pop and return aggregation params from query string params. Aggregation params are expected to be prefixed(nested under) by any of `self._aggregations_keys`. """ from nefertari.view import BaseView self._query_params = BaseView.convert_dotted(self.view._query_params) for key in self._aggregations_keys: if key in self._query_params: return self._query_params.pop(key) else: raise KeyError('Missing aggregation params')
def test_convert_dotted(self): converted = BaseView.convert_dotted({ 'settings.foo': 'bar', 'option': 'value', 'one.two.three.four': 4, 'one.two.six': 6, }) assert sorted(converted.keys()) == sorted([ 'settings', 'option', 'one']) assert converted['settings'] == {'foo': 'bar'} assert converted['option'] == 'value' assert converted['one'] == { 'two': { 'three': {'four': 4}, 'six': 6, }, } assert 'settings.foo' not in converted
def __init__(self, context, request): BaseView.__init__(self, context, request) self._json_params = {} self.context = 'foo' self.request = Mock(action='index')
def __init__(self): BaseView.__init__(self, res, req)
def __init__(self, context, request): BaseView.__init__(self, context, request)
def test_convert_dotted_no_dotted(self): converted = BaseView.convert_dotted({ 'option': 'value' }) assert converted == {'option': 'value'}
def __init__(self, *a, **k): BaseView.__init__(self, *a, **k) # turning off before and after calls self._before_calls = {} self._after_calls = {}
def test_get_debug_no_package(self, run): request = Mock(content_type='', method='', accept=[''], user=None) request.registry.settings = {'debug': 'false'} view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) assert not view.get_debug()
def test_convert_dotted_no_dotted(self): converted = BaseView.convert_dotted({'option': 'value'}) assert converted == {'option': 'value'}
def test_not_allowed_action(self, run): request = Mock(content_type='', method='', accept=[''], user=None) view = BaseView( context={}, request=request, _query_params={'foo': 'bar'}) with pytest.raises(JHTTPMethodNotAllowed): view.not_allowed_action()