Ejemplo n.º 1
0
    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([]))
Ejemplo n.º 3
0
 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()
Ejemplo n.º 4
0
 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)