def addmembers(request, chain_id, addmembers_form): if addmembers_form.is_valid(): try: chain_id = int(chain_id) map( lambda u: enroll_member(chain_id, u, request_user=request.user ), addmembers_form.valid_users) except ProjectError as e: messages.error(request, e)
def addmembers(request, chain_id, addmembers_form): if addmembers_form.is_valid(): try: chain_id = int(chain_id) map(lambda u: enroll_member(chain_id, u, request_user=request.user), addmembers_form.valid_users) except ProjectError as e: messages.error(request, e)
def addmembers(request, chain_id, addmembers_form): if addmembers_form.is_valid(): try: chain_id = int(chain_id) map(lambda u: enroll_member( chain_id, u, request_user=request.user), addmembers_form.valid_users) except (IOError, PermissionDenied), e: messages.error(request, e)
def test_quota(self): """Test if quotas are displayed properly for a user.""" def get_project_id(obj): """Sort by project id.""" return obj['project'].uuid def assertQuotaEqual(quota1, quota2): """Custom assert function fro quota lists.""" quota1 = sorted(quota1, key=get_project_id) quota2 = sorted(quota2, key=get_project_id) self.assertEqual(len(quota1), len(quota2)) for q1, q2 in zip(quota1, quota2): p1 = q1['project'] p2 = q2['project'] r1 = q1['resources'] r2 = q2['resources'] self.assertEqual(p1.uuid, p2.uuid) self.assertItemsEqual(r1, r2) # Get the reported description of the resources. resource = Resource.objects.get(name=u"σέρβις1.ρίσορς11") desc11 = resource.report_desc resource = Resource.objects.get(name=u"σέρβις1.resource12") desc12 = resource.report_desc resource = Resource.objects.get(name=u"astakos.pending_app") desc13 = resource.report_desc # These should be the base quota of the user base_quota = [{'project': self.user.base_project, 'resources': [(desc11, '0', '100'), (desc13, '0', '3'), (desc12, '0 bytes', '1.00 kB')] }] # Test 1 - Check if get_quotas works properly for base quotas quota = get_quotas(self.user) assertQuotaEqual(quota, base_quota) # Test 2 - Check if get_quotas works properly for projects too. # # Add member to a project with transaction.atomic(): enroll_member(self.project.uuid, self.user) # These should be the additional quota from the project. new_quota = [{'project': self.project, 'resources': [(desc11, '0', '512')] }] # Assert that get_quotas works as intented quota = get_quotas(self.user) assertQuotaEqual(new_quota + base_quota, quota) # Test 3 - Check if get_quotas shows zero values for removed member # from a project. # # Remove member from project membership = ProjectMembership.objects.get(project=self.project, person=self.user) with transaction.atomic(): remove_membership(membership.id) # These should be the new quota from the project. They are zero since # the user has not used any of the resources, but they are still # displayed as the project limit is > 0. new_quota = [{'project': self.project, 'resources': [(desc11, '0', '0')] }] # Assert that get_quotas works as intented quota = get_quotas(self.user) assertQuotaEqual(new_quota + base_quota, quota)
def test_quota(self): """Test if quotas are displayed properly for a user.""" def get_project_id(obj): """Sort by project id.""" return obj['project'].uuid def assertQuotaEqual(quota1, quota2): """Custom assert function fro quota lists.""" quota1 = sorted(quota1, key=get_project_id) quota2 = sorted(quota2, key=get_project_id) self.assertEqual(len(quota1), len(quota2)) for q1, q2 in zip(quota1, quota2): p1 = q1['project'] p2 = q2['project'] r1 = q1['resources'] r2 = q2['resources'] self.assertEqual(p1.uuid, p2.uuid) self.assertItemsEqual(r1, r2) # Get the reported description of the resources. resource = Resource.objects.get(name=u"σέρβις1.ρίσορς11") desc11 = resource.report_desc resource = Resource.objects.get(name=u"σέρβις1.resource12") desc12 = resource.report_desc resource = Resource.objects.get(name=u"astakos.pending_app") desc13 = resource.report_desc # These should be the base quota of the user base_quota = [{ 'project': self.user.base_project, 'resources': [(desc11, '0', '100'), (desc13, '0', '3'), (desc12, '0 bytes', '1.00 kB')] }] # Test 1 - Check if get_quotas works properly for base quotas quota = get_quotas(self.user) assertQuotaEqual(quota, base_quota) # Test 2 - Check if get_quotas works properly for projects too. # # Add member to a project with transaction.atomic(): enroll_member(self.project.uuid, self.user) # These should be the additional quota from the project. new_quota = [{ 'project': self.project, 'resources': [(desc11, '0', '512')] }] # Assert that get_quotas works as intented quota = get_quotas(self.user) assertQuotaEqual(new_quota + base_quota, quota) # Test 3 - Check if get_quotas shows zero values for removed member # from a project. # # Remove member from project membership = ProjectMembership.objects.get(project=self.project, person=self.user) with transaction.atomic(): remove_membership(membership.id) # These should be the new quota from the project. They are zero since # the user has not used any of the resources, but they are still # displayed as the project limit is > 0. new_quota = [{ 'project': self.project, 'resources': [(desc11, '0', '0')] }] # Assert that get_quotas works as intented quota = get_quotas(self.user) assertQuotaEqual(new_quota + base_quota, quota)