示例#1
0
 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)
示例#2
0
 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
示例#3
0
 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
示例#4
0
 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']
示例#5
0
 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()
示例#6
0
 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'
示例#7
0
 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
示例#8
0
 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())
示例#9
0
 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
示例#10
0
 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'
示例#11
0
 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'})
示例#12
0
 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')
示例#13
0
 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
示例#14
0
    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')
示例#15
0
 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
示例#16
0
 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
示例#17
0
 def __init__(self, context, request):
     BaseView.__init__(self, context, request)
     self._json_params = {}
     self.context = 'foo'
     self.request = Mock(action='index')
示例#18
0
 def __init__(self):
     BaseView.__init__(self, res, req)
示例#19
0
 def __init__(self, context, request):
     BaseView.__init__(self, context, request)
示例#20
0
 def test_convert_dotted_no_dotted(self):
     converted = BaseView.convert_dotted({
         'option': 'value'
     })
     assert converted == {'option': 'value'}
示例#21
0
 def __init__(self, context, request):
     BaseView.__init__(self, context, request)
     self._json_params = {}
     self.context = 'foo'
     self.request = Mock(action='index')
示例#22
0
 def __init__(self, *a, **k):
     BaseView.__init__(self, *a, **k)
     # turning off before and after calls
     self._before_calls = {}
     self._after_calls = {}
示例#23
0
 def __init__(self):
     BaseView.__init__(self, res, req)
示例#24
0
 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()
示例#25
0
 def test_convert_dotted_no_dotted(self):
     converted = BaseView.convert_dotted({'option': 'value'})
     assert converted == {'option': 'value'}
示例#26
0
 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()
示例#27
0
 def __init__(self, *a, **k):
     BaseView.__init__(self, *a, **k)
     # turning off before and after calls
     self._before_calls = {}
     self._after_calls = {}
示例#28
0
 def __init__(self, context, request):
     BaseView.__init__(self, context, request)