示例#1
0
    def test_fetch_shared_records_sets_shared_ids_if_empty(self):
        request = DummyRequest()
        context = RouteFactory(request)
        request.registry.permission.get_accessible_objects.return_value = {}

        context.fetch_shared_records("read", ["userid"], None)

        self.assertEqual(context.shared_ids, [])
示例#2
0
    def test_fetch_shared_records_sets_shared_ids_to_none_if_empty(self):
        request = DummyRequest()
        context = RouteFactory(request)
        request.registry.permission.get_accessible_objects.return_value = {}

        context.fetch_shared_records('read', ['userid'], None)

        self.assertIsNone(context.shared_ids)
示例#3
0
    def test_fetch_shared_records_sets_shared_ids_if_empty(self):
        request = DummyRequest()
        context = RouteFactory(request)
        request.registry.permission.get_accessible_objects.return_value = {}

        context.fetch_shared_records("read", ["userid"], None)

        self.assertEqual(context.shared_ids, [])
    def test_fetch_shared_records_sets_shared_ids_to_none_if_empty(self):
        request = DummyRequest()
        context = RouteFactory(request)
        request.registry.permission.get_accessible_objects.return_value = {}

        context.fetch_shared_records('read', ['userid'], None)

        self.assertIsNone(context.shared_ids)
示例#5
0
 def test_fetch_shared_records_sets_shared_ids_from_results(self):
     request = DummyRequest()
     context = RouteFactory(request)
     request.registry.permission.get_accessible_objects.return_value = {
         "/obj/1": ["read", "write"],
         "/obj/3": ["obj:create"],
     }
     context.fetch_shared_records("read", ["userid"], None)
     self.assertEqual(sorted(context.shared_ids), ["1", "3"])
示例#6
0
 def test_fetch_shared_records_sets_shared_ids_from_results(self):
     request = DummyRequest()
     context = RouteFactory(request)
     request.registry.permission.get_accessible_objects.return_value = {
         '/obj/1': ['read', 'write'],
         '/obj/3': ['obj:create']
     }
     context.fetch_shared_records('read', ['userid'], None)
     self.assertEquals(sorted(context.shared_ids), ['1', '3'])
示例#7
0
 def test_fetch_shared_records_sets_shared_ids_from_results(self):
     request = DummyRequest()
     context = RouteFactory(request)
     request.registry.permission.get_accessible_objects.return_value = {
         "/obj/1": ["read", "write"],
         "/obj/3": ["obj:create"],
     }
     context.fetch_shared_records("read", ["userid"], None)
     self.assertEqual(sorted(context.shared_ids), ["1", "3"])
 def test_fetch_shared_records_sets_shared_ids_from_results(self):
     request = DummyRequest()
     context = RouteFactory(request)
     request.registry.permission.get_accessible_objects.return_value = {
         '/obj/1': ['read', 'write'],
         '/obj/3': ['obj:create']
     }
     context.fetch_shared_records('read', ['userid'], None)
     self.assertEquals(sorted(context.shared_ids), ['1', '3'])
示例#9
0
    def test_fetch_shared_records_uses_pattern_if_on_collection(self):
        request = DummyRequest()
        request.route_path.return_value = "/v1/buckets/%2A"
        service = mock.MagicMock()
        service.type = "collection"
        with mock.patch("kinto.core.authorization.utils.current_service") as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        context.fetch_shared_records("read", ["userid"], None)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ["userid"], [("/buckets/*", "read")], with_children=False)
示例#10
0
    def test_fetch_shared_records_uses_pattern_if_on_collection(self):
        request = DummyRequest()
        request.route_path.return_value = '/v1/buckets/%2A'
        service = mock.MagicMock()
        service.type = 'collection'
        with mock.patch('kinto.core.authorization.utils.current_service') as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        context.fetch_shared_records('read', ['userid'], None)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ['userid'], [('/buckets/*', 'read')])
示例#11
0
    def test_fetch_shared_records_uses_pattern_if_on_collection(self):
        request = DummyRequest()
        request.route_path.return_value = "/v1/buckets/%2A"
        service = mock.MagicMock()
        service.type = "collection"
        with mock.patch("kinto.core.authorization.utils.current_service") as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        context.fetch_shared_records("read", ["userid"], None)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ["userid"], [("/buckets/*", "read")], with_children=False
        )
示例#12
0
    def test_fetch_shared_records_uses_pattern_if_on_collection(self):
        request = DummyRequest()
        request.route_path.return_value = '/v1/buckets/%2A'
        service = mock.MagicMock()
        service.type = 'collection'
        with mock.patch('kinto.core.authorization.utils.current_service') as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        context.fetch_shared_records('read', ['userid'], None)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ['userid'],
            [('/buckets/*', 'read')])
示例#13
0
    def test_fetch_shared_records_uses_get_bound_permission_callback(self):
        request = DummyRequest()
        service = mock.MagicMock()
        request.route_path.return_value = '/v1/buckets/%2A'
        service.type = 'collection'
        with mock.patch('kinto.core.authorization.utils.current_service') as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        # Define a callback where write means read:
        def get_bound_perms(obj_id, perm):
            return [(obj_id, 'write'), (obj_id, 'read')]

        context.fetch_shared_records('read', ['userid'], get_bound_perms)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ['userid'], [('/buckets/*', 'write'), ('/buckets/*', 'read')])
示例#14
0
    def test_fetch_shared_records_uses_get_bound_permission_callback(self):
        request = DummyRequest()
        service = mock.MagicMock()
        request.route_path.return_value = "/v1/buckets/%2A"
        service.type = "collection"
        with mock.patch("kinto.core.authorization.utils.current_service") as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        # Define a callback where write means read:
        def get_bound_perms(obj_id, perm):
            return [(obj_id, "write"), (obj_id, "read")]

        context.fetch_shared_records("read", ["userid"], get_bound_perms)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ["userid"], [("/buckets/*", "write"), ("/buckets/*", "read")],
            with_children=False)
示例#15
0
    def test_fetch_shared_records_uses_get_bound_permission_callback(self):
        request = DummyRequest()
        service = mock.MagicMock()
        request.route_path.return_value = "/v1/buckets/%2A"
        service.type = "collection"
        with mock.patch("kinto.core.authorization.utils.current_service") as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        # Define a callback where write means read:
        def get_bound_perms(obj_id, perm):
            return [(obj_id, "write"), (obj_id, "read")]

        context.fetch_shared_records("read", ["userid"], get_bound_perms)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ["userid"], [("/buckets/*", "write"), ("/buckets/*", "read")], with_children=False
        )
示例#16
0
    def test_fetch_shared_records_uses_get_bound_permission_callback(self):
        request = DummyRequest()
        service = mock.MagicMock()
        request.route_path.return_value = '/v1/buckets/%2A'
        service.type = 'collection'
        with mock.patch('kinto.core.authorization.utils.current_service') as m:
            m.return_value = service
            context = RouteFactory(request)
        self.assertTrue(context.on_collection)

        # Define a callback where write means read:
        def get_bound_perms(obj_id, perm):
            return [(obj_id, 'write'), (obj_id, 'read')]

        context.fetch_shared_records('read', ['userid'], get_bound_perms)

        request.registry.permission.get_accessible_objects.assert_called_with(
            ['userid'],
            [('/buckets/*', 'write'), ('/buckets/*', 'read')])