def test_remove_user_with_direct_access_to_machine(self): user = factory.make_User() group = factory.make_UserGroup(users=[user]) pool = factory.make_ResourcePool(users=[user]) factory.make_Role(pools=[pool], groups=[group]) group.remove(user) self.assertTrue(ResourcePool.objects.user_can_access_pool(user, pool))
def test_remove_user_would_lose_machine_access(self): user = factory.make_User() group = factory.make_UserGroup(users=[user]) pool = factory.make_ResourcePool() factory.make_Role(pools=[pool], groups=[group]) factory.make_Node(owner=user, pool=pool) self.assertRaises(ValidationError, group.remove, user)
def test_remove_user_with_other_group_access_to_machine_same_role(self): user = factory.make_User() group1 = factory.make_UserGroup(users=[user]) group2 = factory.make_UserGroup(users=[user]) pool = factory.make_ResourcePool() factory.make_Role(pools=[pool], groups=[group1, group2]) factory.make_Node(owner=user, pool=pool) group1.remove(user) self.assertTrue(ResourcePool.objects.user_can_access_pool(user, pool))
def test_get_user_resource_pools_user_in_role(self): user = factory.make_User() default_pool = ResourcePool.objects.get_default_resource_pool() pool1 = factory.make_ResourcePool() pool2 = factory.make_ResourcePool() factory.make_ResourcePool() # a pool the user doesn't have access to factory.make_Role(users=[user], pools=[pool1, pool2]) self.assertCountEqual( ResourcePool.objects.get_user_resource_pools(user), [default_pool, pool1, pool2])
def test_get_user_resource_pools_role_direct_and_via_group(self): user = factory.make_User() group = factory.make_UserGroup(users=[user]) default_pool = ResourcePool.objects.get_default_resource_pool() pool1 = factory.make_ResourcePool() pool2 = factory.make_ResourcePool() factory.make_Role(users=[user], pools=[pool1]) factory.make_Role(groups=[group], pools=[pool2]) self.assertCountEqual( ResourcePool.objects.get_user_resource_pools(user), [default_pool, pool1, pool2])
def test_related_resource_pools(self): pool1 = factory.make_ResourcePool() pool2 = factory.make_ResourcePool() role = factory.make_Role() role.resource_pools.add(pool1) role.resource_pools.add(pool2) self.assertCountEqual(role.resource_pools.all(), [pool1, pool2])
def test_related_users(self): user1 = factory.make_User() user2 = factory.make_User() role = factory.make_Role() role.users.add(user1) role.users.add(user2) self.assertCountEqual(role.users.all(), [user1, user2])
def test_related_group(self): group1 = factory.make_UserGroup() group2 = factory.make_UserGroup() role = factory.make_Role() role.groups.add(group1) role.groups.add(group2) self.assertCountEqual(role.groups.all(), [group1, group2])
def test_get_user_resource_pools(self): user = factory.make_User() default_pool = ResourcePool.objects.get_default_resource_pool() pool1 = factory.make_ResourcePool() pool2 = factory.make_ResourcePool() factory.make_ResourcePool() # a pool the user doesn't have access to role = factory.make_Role() role.users.add(user) role.resource_pools.add(pool1) role.resource_pools.add(pool2) self.assertCountEqual( ResourcePool.objects.get_user_resource_pools(user), [default_pool, pool1, pool2])
def test_init(self): name = factory.make_name('name') description = factory.make_name('description') role = factory.make_Role(name=name, description=description) self.assertEqual(role.name, name) self.assertEqual(role.description, description)