Ejemplo n.º 1
0
 def test_group_permissions(self):
     """ Retrieve a group's permissions from database """
     g1 = Group('brotatos')
     g2 = Group('sharkfest')
     p1 = GroupPermission('pkg1', 'brotatos', True, False)
     p2 = GroupPermission('pkg1', 'sharkfest', True, True)
     self.db.add_all([g1, g2, p1, p2])
     transaction.commit()
     perms = self.access.group_permissions('pkg1', 'brotatos')
     self.assertEqual(perms, ['read'])
Ejemplo n.º 2
0
 def test_user_groups(self):
     """ Retrieve a user's groups from database """
     user = make_user('foo', 'bar', False)
     g1 = Group('brotatos')
     g2 = Group('sharkfest')
     user.groups.update([g1, g2])
     self.db.add_all([user, g1, g2])
     transaction.commit()
     groups = self.access.groups('foo')
     self.assertItemsEqual(groups, ['brotatos', 'sharkfest'])
Ejemplo n.º 3
0
 def test_groups(self):
     """ Retrieve all groups from database """
     user = make_user('foo', 'bar', False)
     g1 = Group('brotatos')
     g2 = Group('sharkfest')
     user.groups.add(g1)
     user.groups.add(g2)
     self.db.add(user)
     transaction.commit()
     groups = self.access.groups()
     self.assertItemsEqual(groups, ['brotatos', 'sharkfest'])
Ejemplo n.º 4
0
 def test_grant_group_bad_permission(self):
     """ Attempting to grant a bad permission raises ValueError """
     g = Group('foo')
     self.db.add(g)
     transaction.commit()
     with self.assertRaises(ValueError):
         self.access.edit_group_permission('pkg1', 'foo', 'wiggle', True)
Ejemplo n.º 5
0
 def test_add_user_to_group(self):
     """ Can add a user to a group """
     user = make_user('foo', 'bar', False)
     group = Group('g1')
     self.db.add_all([user, group])
     transaction.commit()
     self.access.edit_user_group('foo', 'g1', True)
     transaction.commit()
     self.db.add(user)
     self.assertEqual([g.name for g in user.groups], ['g1'])
Ejemplo n.º 6
0
 def test_revoke_group_permission(self):
     """ Can revoke group permissions on a package """
     g = Group('foo')
     perm = GroupPermission('pkg1', 'foo', read=True)
     self.db.add_all([g, perm])
     transaction.commit()
     self.access.edit_group_permission('pkg1', 'foo', 'read', False)
     transaction.commit()
     self.db.add(g)
     self.assertEqual(len(g.permissions), 0)
Ejemplo n.º 7
0
 def test_remove_user_from_group(self):
     """ Can remove a user from a group """
     user = make_user('foo', 'bar', False)
     group = Group('g1')
     user.groups.add(group)
     self.db.add_all([user, group])
     transaction.commit()
     self.access.edit_user_group('foo', 'g1', False)
     transaction.commit()
     self.db.add(user)
     self.assertEqual(len(user.groups), 0)
Ejemplo n.º 8
0
 def test_group_members(self):
     """ Fetch all members of a group """
     u1 = make_user('u1', 'bar', False)
     u2 = make_user('u2', 'bar', False)
     u3 = make_user('u3', 'bar', False)
     g1 = Group('g1')
     g1.users.update([u1, u2])
     self.db.add_all([u1, u2, u3, g1])
     transaction.commit()
     users = self.access.group_members('g1')
     self.assertItemsEqual(users, ['u1', 'u2'])
Ejemplo n.º 9
0
 def test_group_package_perms(self):
     """ Fetch all packages a group has permissions on """
     g1 = Group('foo')
     p1 = GroupPermission('pkg1', 'foo', True, False)
     p2 = GroupPermission('pkg2', 'foo', True, True)
     self.db.add_all([g1, p1, p2])
     transaction.commit()
     perms = self.access.group_package_permissions('foo')
     self.assertEqual(perms, [
         {'package': 'pkg1', 'permissions': ['read']},
         {'package': 'pkg2', 'permissions': ['read', 'write']},
     ])
Ejemplo n.º 10
0
 def test_grant_group_write_permission(self):
     """ Can give groups write permissions on a package """
     g = Group('foo')
     self.db.add(g)
     transaction.commit()
     self.access.edit_group_permission('pkg1', 'foo', 'write', True)
     transaction.commit()
     self.db.add(g)
     self.assertEqual(len(g.permissions), 1)
     perm = g.permissions[0]
     self.assertEqual(perm.package, 'pkg1')
     self.assertFalse(perm.read)
     self.assertTrue(perm.write)
Ejemplo n.º 11
0
 def test_delete_group(self):
     """ Can delete groups """
     user = make_user('foo', 'bar')
     group = Group('foobar')
     user.groups.add(group)
     self.db.add_all([user, group])
     transaction.commit()
     self.access.delete_group('foobar')
     transaction.commit()
     count = self.db.query(Group).count()
     self.assertEqual(count, 0)
     count = self.db.query(association_table).count()
     self.assertEqual(count, 0)
Ejemplo n.º 12
0
 def test_delete_user(self):
     """ Can delete users """
     user = make_user('foo', 'bar', False)
     group = Group('foobar')
     user.groups.add(group)
     self.db.add_all([user, group])
     transaction.commit()
     self.access.delete_user('foo')
     transaction.commit()
     user = self.db.query(User).first()
     self.assertIsNone(user)
     count = self.db.query(association_table).count()
     self.assertEqual(count, 0)
Ejemplo n.º 13
0
 def test_single_user_data(self):
     """ Retrieve a single user's data """
     u1 = make_user('foo', 'bar', False)
     u1.admin = True
     g1 = Group('foobars')
     u1.groups.add(g1)
     self.db.add_all([u1, g1])
     transaction.commit()
     user = self.access.user_data('foo')
     self.assertEqual(user, {
         'username': '******',
         'admin': True,
         'groups': ['foobars'],
     })
Ejemplo n.º 14
0
 def test_user_data(self):
     """ Retrieve all users """
     u1 = make_user('foo', 'bar', False)
     u1.admin = True
     u2 = make_user('bar', 'bar', False)
     g1 = Group('foobars')
     u2.groups.add(g1)
     self.db.add_all([u1, u2, g1])
     transaction.commit()
     users = self.access.user_data()
     self.assertItemsEqual(users, [
         {'username': '******', 'admin': True},
         {'username': '******', 'admin': False},
     ])