def test_multiple_arguments(self): req = self.create_request(self.admin) @auth.check(authorisation.ProjectRole, args=['project', 'user', 'role']) def view(request, project_role): return project_role self.assertRaises(KeyError, view, req, id=2) pr = Project(name="test") pr.description = "bla" pr.owner = self.admin pr.insert_user = self.admin pr.guest_role = authorisation.Role.objects.get(label="reader", projectlevel=False) pr.save() pj = authorisation.ProjectRole(user=self.admin, project=pr) pj.role = authorisation.Role.objects.get(label="reader", projectlevel=True) pj.save() self.assertEquals( pj, view(req, project=pr.id, user=self.admin.id, role=pj.role.id))
def setUp(self): super(TestCheckPerm, self).setUp() self.project = Project() self.project.name = 'test' self.project.description = 'test_project' self.project.owner = self.admin self.project.insert_user = self.admin self.project.guest_role = authorisation.Role.objects.get( label="reader", projectlevel=True) self.project.save() authorisation.ProjectRole( project=self.project, user=self.reader, role=authorisation.Role.objects.get(label="read/write", projectlevel=True)).save()
def setUp(self): super(TestCheckPerm, self).setUp() self.project = Project() self.project.name = 'test' self.project.description = 'test_project' self.project.owner = self.admin self.project.insert_user = self.admin self.project.guest_role = authorisation.Role.objects.get(label="reader", projectlevel=True) self.project.save() authorisation.ProjectRole(project=self.project, user=self.reader, role=authorisation.Role.objects.get(label="read/write", projectlevel=True)).save()
def test_multiple_arguments(self): req = self.create_request(self.admin) @auth.check(authorisation.ProjectRole, args=['project', 'user', 'role']) def view(request, project_role): return project_role self.assertRaises(KeyError, view, req, id=2) pr = Project(name="test") pr.description = "bla" pr.owner = self.admin pr.insert_user = self.admin pr.guest_role = authorisation.Role.objects.get(label="reader", projectlevel=False) pr.save() pj = authorisation.ProjectRole(user=self.admin, project=pr) pj.role = authorisation.Role.objects.get(label="reader", projectlevel=True) pj.save() self.assertEquals(pj, view(req, project=pr.id, user=self.admin.id, role=pj.role.id))
class TestCheckPerm(TestCase): def setUp(self): super(TestCheckPerm, self).setUp() self.project = Project() self.project.name = 'test' self.project.description = 'test_project' self.project.owner = self.admin self.project.insert_user = self.admin self.project.guest_role = authorisation.Role.objects.get(label="reader", projectlevel=True) self.project.save() authorisation.ProjectRole(project=self.project, user=self.reader, role=authorisation.Role.objects.get(label="read/write", projectlevel=True)).save() def tearDown(self): self.project.delete() def test_privilege(self): adreq = self.create_request(self.superadmin) rereq = self.create_request(self.reader) @auth.check_perm("view_users") def view(request): pass self.assertEquals(None, view(adreq)) self.assertEquals(550, view(rereq).status_code) def test_non_string_as_arg(self): for typ in [None, [], (), 45, AssertionError]: self.assertRaises(AssertionError, lambda: auth.check_perm("view_users", arg=typ)) self.assertIsNotNone(auth.check_perm("view_users", arg='bla')) def test_non_existing_privilege(self): req = self.create_request(self.admin) # add_articles doesn't exist globally @auth.check_perm("add_articles") def view(request): pass self.assertRaises(authorisation.Privilege.DoesNotExist, view, req) def test_onproject_and_arg(self): non_member_req = self.create_request(self.read_write) member_req = self.create_request(self.reader) @auth.check_perm("add_articles", True) def view1(request, id): pass @auth.check_perm("add_articles", True, 'pid') def view2(request, pid): pass self.assertEquals(None, view1(member_req, id=self.project.id)) self.assertEquals(550, view1(non_member_req, id=self.project.id).status_code) self.assertRaises(Exception, lambda: view1(member_req, pid=self.project.id)) self.assertEquals(None, view2(member_req, pid=self.project.id)) self.assertRaises(Exception, lambda: view2(member_req, id=self.project.id)) def test_argument_passing(self): req = self.create_request(self.superadmin) @auth.check_perm("view_users") def view1(request, a, b, c=None, d=5): return (a, b, c, d) a, b, c, d = 1, 2, 3, 4 self.assertEquals((a,b,c,d), view1(req, a, b, c, d)) self.assertEquals((a,b,c,d), view1(req, a, b, c=c, d=d)) self.assertEquals((a,b,c,d), view1(req, a, b=b, c=c, d=d))
class TestCheckPerm(TestCase): def setUp(self): super(TestCheckPerm, self).setUp() self.project = Project() self.project.name = 'test' self.project.description = 'test_project' self.project.owner = self.admin self.project.insert_user = self.admin self.project.guest_role = authorisation.Role.objects.get( label="reader", projectlevel=True) self.project.save() authorisation.ProjectRole( project=self.project, user=self.reader, role=authorisation.Role.objects.get(label="read/write", projectlevel=True)).save() def tearDown(self): self.project.delete() def test_privilege(self): adreq = self.create_request(self.superadmin) rereq = self.create_request(self.reader) @auth.check_perm("view_users") def view(request): pass self.assertEquals(None, view(adreq)) self.assertEquals(550, view(rereq).status_code) def test_non_string_as_arg(self): for typ in [None, [], (), 45, AssertionError]: self.assertRaises(AssertionError, lambda: auth.check_perm("view_users", arg=typ)) self.assertIsNotNone(auth.check_perm("view_users", arg='bla')) def test_non_existing_privilege(self): req = self.create_request(self.admin) # add_articles doesn't exist globally @auth.check_perm("add_articles") def view(request): pass self.assertRaises(authorisation.Privilege.DoesNotExist, view, req) def test_onproject_and_arg(self): non_member_req = self.create_request(self.read_write) member_req = self.create_request(self.reader) @auth.check_perm("add_articles", True) def view1(request, id): pass @auth.check_perm("add_articles", True, 'pid') def view2(request, pid): pass self.assertEquals(None, view1(member_req, id=self.project.id)) self.assertEquals( 550, view1(non_member_req, id=self.project.id).status_code) self.assertRaises(Exception, lambda: view1(member_req, pid=self.project.id)) self.assertEquals(None, view2(member_req, pid=self.project.id)) self.assertRaises(Exception, lambda: view2(member_req, id=self.project.id)) def test_argument_passing(self): req = self.create_request(self.superadmin) @auth.check_perm("view_users") def view1(request, a, b, c=None, d=5): return (a, b, c, d) a, b, c, d = 1, 2, 3, 4 self.assertEquals((a, b, c, d), view1(req, a, b, c, d)) self.assertEquals((a, b, c, d), view1(req, a, b, c=c, d=d)) self.assertEquals((a, b, c, d), view1(req, a, b=b, c=c, d=d))