def test_fixed_usage_is_aggregated_for_project_and_customer(self): # Arrange models.ResourcePlanPeriod.objects.create( resource=self.resource, plan=self.plan, start=parse_date('2019-01-10'), end=parse_date('2019-01-20'), ) # Act tasks.calculate_usage_for_current_month() # Assert project_usage = (models.CategoryComponentUsage.objects.filter( scope=self.project, component=self.category_component, date=self.date, ).get().fixed_usage) customer_usage = (models.CategoryComponentUsage.objects.filter( scope=self.customer, component=self.category_component, date=self.date).get().fixed_usage) self.assertEqual(project_usage, self.plan_component.amount) self.assertEqual(customer_usage, self.plan_component.amount)
def test_reported_usage_is_aggregated_for_project_and_customer(self): # Arrange plan_period = models.ResourcePlanPeriod.objects.create( start=parse_datetime('2019-01-01'), resource=self.resource, plan=self.plan, ) models.ComponentUsage.objects.create( resource=self.resource, component=self.offering_component, date=parse_date('2019-01-10'), billing_period=parse_date('2019-01-01'), plan_period=plan_period, usage=100, ) self.new_resource = factories.ResourceFactory(project=self.project, offering=self.offering, plan=self.plan) new_plan_period = models.ResourcePlanPeriod.objects.create( start=parse_date('2019-01-01'), resource=self.new_resource, plan=self.plan, ) models.ComponentUsage.objects.create( resource=self.resource, component=self.offering_component, date=parse_date('2019-01-20'), billing_period=parse_date('2019-01-01'), plan_period=new_plan_period, usage=200, ) # Act tasks.calculate_usage_for_current_month() # Assert project_usage = (models.CategoryComponentUsage.objects.filter( scope=self.project, component=self.category_component, date=self.date).get().reported_usage) customer_usage = (models.CategoryComponentUsage.objects.filter( scope=self.customer, component=self.category_component, date=self.date).get().reported_usage) self.assertEqual(project_usage, 300) self.assertEqual(customer_usage, 300)
def test_calculate_usage_if_category_component_is_not_set(self): self.offering_component.parent = None self.offering_component.save() tasks.calculate_usage_for_current_month() self.assertEqual(models.CategoryComponentUsage.objects.count(), 0)
def test_calculate_usage_if_category_component_is_set(self): tasks.calculate_usage_for_current_month() self.assertEqual(models.CategoryComponentUsage.objects.count(), 2)