def test_delete_budget_value_from_wfl2(self): """ When budget deleted, then related wfl2s total_estimated_budget should be updated """ wflvl1 = factories.WorkflowLevel1(name='WorkflowLevel1', organization=self.organization) wflvl2 = factories.WorkflowLevel2(name='WorkflowLevel2', workflowlevel1=wflvl1, total_estimated_budget=0, actual_cost=0) factories.Budget(proposed_value=100, actual_value=10, workflowlevel2=wflvl2) budget_2 = factories.Budget(proposed_value=80, actual_value=20, workflowlevel2=wflvl2) wflvl2 = WorkflowLevel2.objects.get(pk=wflvl2.pk) self.assertEqual(wflvl2.total_estimated_budget, 180.00) self.assertEqual(wflvl2.actual_cost, 30.00) budget_2.delete() wflvl2 = WorkflowLevel2.objects.get(pk=wflvl2.pk) self.assertEqual(wflvl2.total_estimated_budget, 100.00) self.assertEqual(wflvl2.actual_cost, 10.00)
def test_save_budget_value_without_wfl2_create(self): """ When a budget is created without wfl2s, it's should work properly """ budget = factories.Budget(proposed_value=100, actual_value=10) self.assertEqual(budget.proposed_value, 100.00) self.assertEqual(budget.actual_value, 10.00)
def test_list_budget_normaluser_one_result(self): tola_user = factories.TolaUser() wflvl1 = factories.WorkflowLevel1(name='WorkflowLevel1', organization=tola_user.organization) wflvl2 = factories.WorkflowLevel2(name='WorkflowLevel2', workflowlevel1=wflvl1) factories.Budget(workflowlevel2=wflvl2) self.request.user = tola_user.user view = BudgetViewSet.as_view({'get': 'list'}) response = view(self.request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1)
def test_filter_budget_org_superuser(self): self.tola_user.user.is_staff = True self.tola_user.user.is_superuser = True self.tola_user.user.save() another_org = factories.Organization(name='Another Org') wkflvl1_1 = factories.WorkflowLevel1( organization=self.tola_user.organization) wkflvl1_2 = factories.WorkflowLevel1(organization=another_org) wkflvl2_1 = factories.WorkflowLevel2(workflowlevel1=wkflvl1_1) wkflvl2_2 = factories.WorkflowLevel2(workflowlevel1=wkflvl1_2) budget1 = factories.Budget(workflowlevel2=wkflvl2_1) factories.Budget(contributor='Paul McCartney', workflowlevel2=wkflvl2_2) request = self.factory.get( '/api/budget/?workflowlevel2__workflowlevel1__organization__id' '=%s' % self.tola_user.organization.pk) request.user = self.tola_user.user view = BudgetViewSet.as_view({'get': 'list'}) response = view(request) self.assertEqual(response.status_code, 200) self.assertEqual(len(response.data), 1) self.assertEqual(response.data[0]['contributor'], budget1.contributor)
def test_save_budget_value_from_wfl2_update(self): """ When a budget is updated, the related wfl2s total_estimated_budget should be updated """ wflvl1 = factories.WorkflowLevel1(name='WorkflowLevel1', organization=self.organization) wflvl2 = factories.WorkflowLevel2(name='WorkflowLevel2', workflowlevel1=wflvl1, total_estimated_budget=0, actual_cost=0) budget = factories.Budget(proposed_value=100, actual_value=10, workflowlevel2=wflvl2) budget.proposed_value = 150 budget.actual_value = 50 budget.save() wflvl2 = WorkflowLevel2.objects.get(pk=wflvl2.pk) self.assertEqual(wflvl2.total_estimated_budget, 150.00) self.assertEqual(wflvl2.actual_cost, 50.00)