def test_filter_nested_item_deny_access(self, mock_engine): mock_engine.ACLField.objectify_acl.return_value = [["Allow", "someuser", "view"]] mock_nested_type = type( "mock_type", (DataProxy,), { "__init__": DataProxy.__init__, "__setattr__": DataProxy.__setattr__, "substitutions": list(), "to_dict": DataProxy.to_dict, }, ) mock_nested_object = mock_nested_type( data={ "_type": "MockNestedType", "_acl": [{"action": "allow", "principal": "someuser", "permission": "view"}], } ) mock_document = {"_type": "MockParent", "nested_type": [mock_nested_object]} mock_authz = type( "mock_authz", (ACLAuthorizationPolicy,), {"effective_principals": lambda x, y: ["someusergroup"]} ) mock_registry = type("mock_registry", (object,), {"queryUtility": lambda x, y: mock_authz()}) mock_request = type("Request", (AuthorizationAPIMixin,), {"registry": mock_registry()}) result = es.check_relations_permissions(mock_request(), mock_document) assert result["nested_type"] == []
def test_check_relations_permissions_dict(self, mock_check): mock_check.return_value = 1 document = {"one": 2, "two": {}, "three": ["foo", "bar"]} request = "Foo" checked = es.check_relations_permissions(request, document) assert checked == {"one": 1, "two": 1, "three": [1, 1]} mock_check.assert_has_calls( [call(request, 2), call(request, {}), call(request, "foo"), call(request, "bar")], any_order=True )
def test_check_relations_permissions_none_dropped(self, mock_check): mock_check.return_value = None document = { 'one': 2, 'two': {}, 'three': ['foo', 'bar'] } checked = es.check_relations_permissions('Foo', document) assert checked == { 'one': None, 'two': None, 'three': [] }
def test_check_relations_permissions_dict(self, mock_check): mock_check.return_value = 1 document = { 'one': 2, 'two': {}, 'three': ['foo', 'bar'] } request = 'Foo' checked = es.check_relations_permissions(request, document) assert checked == { 'one': 1, 'two': 1, 'three': [1, 1] } mock_check.assert_has_calls([ call(request, 2), call(request, {}), call(request, 'foo'), call(request, 'bar'), ], any_order=True)
def test_check_relations_permissions_none_dropped(self, mock_check): mock_check.return_value = None document = {"one": 2, "two": {}, "three": ["foo", "bar"]} checked = es.check_relations_permissions("Foo", document) assert checked == {"one": None, "two": None, "three": []}