def test_magic_acl(self): obj = acl.BaseACL('req') obj._collection_acl = [(1, 2, 3)] obj._apply_callables = Mock() result = obj.__acl__() obj._apply_callables.assert_called_once_with(acl=[(1, 2, 3)], ) assert result == obj._apply_callables()
def test_apply_callables_functional(self): obj = acl.BaseACL('req') principal = lambda ace, request, obj: [(Allow, Everyone, 'view')] new_acl = obj._apply_callables( acl=[(Deny, principal, ALL_PERMISSIONS)], ) assert new_acl == ((Allow, Everyone, ['view']),)
def test_magic_getitem_db_based(self): obj = acl.BaseACL('req') obj.item_db_id = Mock(return_value=42) obj.item_model = Mock() obj.item_model.pk_field.return_value = 'id' obj.es_based = False obj.__getitem__(1) obj.item_db_id.assert_called_once_with(1)
def test_magic_getitem_es_based(self): obj = acl.BaseACL('req') obj.item_db_id = Mock(return_value=42) obj.getitem_es = Mock() obj.es_based = True obj.__getitem__(1) obj.item_db_id.assert_called_once_with(1) obj.getitem_es.assert_called_once_with(42)
def test_item_acl(self): obj = acl.BaseACL('req') obj._item_acl = [(1, 2, 3)] obj._apply_callables = Mock() result = obj.item_acl('foobar') obj._apply_callables.assert_called_once_with(acl=[(1, 2, 3)], obj='foobar') assert result == obj._apply_callables()
def test_apply_callables_principal_returns_list(self, mock_meth): mock_meth.return_value = '123' principal = Mock(return_value=[(7, 8, 9)]) obj = acl.BaseACL('req') new_acl = obj._apply_callables(acl=[('foo', principal, 'bar')], obj='obj') assert new_acl == ((7, 8, '123'), ) principal.assert_called_once_with(ace=('foo', principal, 'bar'), request='req', obj='obj') mock_meth.assert_called_once_with(9)
def test_getitem_es(self, mock_es): found_obj = Mock() es_obj = Mock() es_obj.get_item.return_value = found_obj mock_es.return_value = es_obj obj = acl.BaseACL('req') obj.item_model = Mock(__name__='Foo') obj.item_model.pk_field.return_value = 'myname' obj.item_acl = Mock() value = obj.getitem_es(key='varvar') mock_es.assert_called_with('Foo') es_obj.get_item.assert_called_once_with(id='varvar') obj.item_acl.assert_called_once_with(found_obj) assert value.__acl__ == obj.item_acl() assert value.__parent__ is obj assert value.__name__ == 'varvar'
def test_apply_callables_no_callables(self): obj = acl.BaseACL('req') new_acl = obj._apply_callables(acl=[('foo', 'bar', 'baz')], obj='obj') assert new_acl == (('foo', 'bar', 'baz'), )
def test_init(self): obj = acl.BaseACL(request='Foo') assert obj.item_model is None assert obj._collection_acl == (acl.ALLOW_ALL, ) assert obj._item_acl == (acl.ALLOW_ALL, ) assert obj.request == 'Foo'