def test_permission_get(self): """ Test for retrieving a Permission instance given it's name and owner (user or org) or if it's available to all users. """ # scenario 1: when allusers is False specialdachs = self.fixtures.specialdachs netizens = models.Permission(name=u"netizens", title=u"Netizens", org=specialdachs, allusers=True) db.session.add(netizens) db.session.commit() # scenario 1 + neither user or org is given with self.assertRaises(TypeError): models.Permission.get(name=netizens.name, allusers=False) # scenario 1 + only user is given crusoe = self.fixtures.crusoe bdfl = self.fixtures.bdfl self.assertIsNotNone(models.Permission.get(name=bdfl.name, user=crusoe)) # scenario 1 + only org is given result2 = models.Permission.get(name=netizens.name, org=specialdachs) self.assertIsInstance(result2, models.Permission) self.assertEqual(result2, netizens) # scenario 2: when allusers is True result3 = models.Permission.get(name=netizens.name, allusers=True) self.assertIsInstance(result3, models.Permission) self.assertEqual(result3, netizens)
def test_organization_permissions(self): """ Test for adding and retrieving an organization's permissions """ permissions_expected = [ 'view', 'edit', 'delete', 'view-teams', 'new-team' ] crusoe = self.fixtures.crusoe oakley = self.fixtures.oakley batdog = self.fixtures.batdog # scenario 1: if user is owner of organization crusoe_query = batdog.permissions(crusoe) self.assertIsInstance(crusoe_query, set) valid_permissions_received = [] for each in crusoe_query: valid_permissions_received.append(each) self.assertItemsEqual(permissions_expected, valid_permissions_received) # scenario 2: if user is not owner oakley_permission = models.Permission(name=u"huh", title=u"Huh!?", user=oakley) perms = oakley_permission.permissions(user=oakley) perms.add('view') oakley_query = batdog.permissions(oakley) self.assertIsInstance(oakley_query, set) self.assertEqual(oakley_query, set([]))
def create_fixtures(self): self.org = models.Organization(title=u"test", name=u"Test") self.org.owners.users.append(self.user) db.session.add(self.org) self.permission = models.Permission(user=self.user, org=self.org, name=u"admin", title=u"admin", allusers=True) db.session.add(self.permission) db.session.commit()
def test_permission_owner(self): """ Test for retrieving the owner of a Permission instance """ crusoe = self.fixtures.crusoe bdfl = self.fixtures.bdfl get_owner_by_user = bdfl.owner self.assertEqual(get_owner_by_user, crusoe) specialdachs = self.fixtures.specialdachs permission_name = u"netizens" netizens = models.Permission(name=permission_name, title=u"Netizens", allusers=True, org=specialdachs) db.session.add(netizens) db.session.commit() get_owner_by_org = netizens.owner self.assertEqual(get_owner_by_org, specialdachs)