def _init(self): self.ps1, self.ps2, self.ps3 = PricingServiceFactory.create_batch(3) self.se1, self.se2 = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.ps1, ) self.se3, self.se4 = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.ps2, ) self.se5 = ServiceEnvironmentFactory(service__pricing_service=self.ps3) self.other_se = ServiceEnvironmentFactory.create_batch(5) self.service_usage_types = UsageTypeFactory.create_batch( 4, usage_type='SU', ) self.ps1.excluded_services.add(self.other_se[0].service) self.ps1.save() self.ps2.excluded_services.add(self.other_se[1].service) self.ps2.save() self.service_usage_types[0].excluded_services.add( self.other_se[2].service) self.service_usage_types[0].save() self.service_usage_types[3].excluded_services.add( self.other_se[4].service) self.service_usage_types[3].save() models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.ps1, start=self.start, end=self.end, percent=100, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.ps2, start=self.start, end=self.end, percent=70, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[2], pricing_service=self.ps2, start=self.start, end=self.end, percent=30, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[3], pricing_service=self.ps3, start=self.start, end=self.end, percent=100, )
def _init_one(self): """ Creates pricing service with 2 service usages. Pricing service has se4 in excluded services, its usage type has se3 in excluded services. There are 3 daily pricing objects - one of them belongs to se1 (and should not be considered to calculate usages). """ self.ps1 = PricingServiceFactory() self.se1, self.se2 = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.ps1, ) self.se3, self.se4 = ServiceEnvironmentFactory.create_batch(2) self.service_usage_types = UsageTypeFactory.create_batch( 2, usage_type='SU', ) self.service_usage_types[0].excluded_services.add(self.se3.service) self.service_usage_types[0].save() self.ps1.excluded_services.add(self.se4.service) self.ps1.save() models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.ps1, start=self.start, end=self.end, percent=70, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.ps1, start=self.start, end=self.end, percent=30, ) self.dpo1 = DailyPricingObjectFactory() self.dpo2 = DailyPricingObjectFactory() self.dpo3 = DailyPricingObjectFactory( service_environment=self.se1 ) for dpo in models.DailyPricingObject.objects.all(): for su, value in zip(self.service_usage_types, [10, 20]): models.DailyUsage.objects.create( daily_pricing_object=dpo, service_environment=dpo.service_environment, date=self.today, value=value, type=su, )
def _init_one(self): """ Creates pricing service with 2 service usages. Pricing service has se4 in excluded services, its usage type has se3 in excluded services. There are 3 daily pricing objects - one of them belongs to se1 (and should not be considered to calculate usages). """ self.ps1 = PricingServiceFactory() self.se1, self.se2 = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.ps1, ) self.se3, self.se4 = ServiceEnvironmentFactory.create_batch(2) self.service_usage_types = UsageTypeFactory.create_batch( 2, usage_type='SU', ) self.service_usage_types[0].excluded_services.add(self.se3.service) self.service_usage_types[0].save() self.ps1.excluded_services.add(self.se4.service) self.ps1.save() models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.ps1, start=self.start, end=self.end, percent=70, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.ps1, start=self.start, end=self.end, percent=30, ) self.dpo1 = DailyPricingObjectFactory() self.dpo2 = DailyPricingObjectFactory() self.dpo3 = DailyPricingObjectFactory(service_environment=self.se1) for dpo in models.DailyPricingObject.objects.all(): for su, value in zip(self.service_usage_types, [10, 20]): models.DailyUsage.objects.create( daily_pricing_object=dpo, service_environment=dpo.service_environment, date=self.today, value=value, type=su, )
def setUp(self): self.today = date(2013, 10, 11) self.checkpoint = date(2013, 10, 15) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) self.service_environments = ServiceEnvironmentFactory.create_batch(2) self.collector = Collector() self.dates1 = self._dates_between(self.start, self.checkpoint) self.dates2 = self._dates_between(self.checkpoint + timedelta(days=1), self.end) self.dates = self._dates_between(self.start, self.end)
def setUp(self): self.se1, self.se2 = ServiceEnvironmentFactory.create_batch(2) self.po1 = PricingObjectFactory(service_environment=self.se1) self.po2 = PricingObjectFactory(service_environment=self.se2) self.bu1 = ExtraCostTypeFactory() self.bu2 = UsageTypeFactory() self.bu3 = PricingServiceFactory() self.bu4 = PricingServiceFactory() self.wh1 = WarehouseFactory() self.wh2 = WarehouseFactory()
def setUp(self): self.today = date(2013, 10, 11) self.checkpoint = date(2013, 10, 15) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) self.service_environments = ServiceEnvironmentFactory.create_batch(2) self.collector = Collector() self.dates1 = self._dates_between(self.start, self.checkpoint) self.dates2 = self._dates_between( self.checkpoint + timedelta(days=1), self.end ) self.dates = self._dates_between(self.start, self.end)
def setUp(self): self.today = date(2014, 11, 10) self.service_environments = ServiceEnvironmentFactory.create_batch(5) self.pricing_service1 = PricingServiceFactory() fixed_price = ( models.PricingServicePlugin.pricing_service_fixed_price_plugin) self.pricing_service2 = PricingServiceFactory(plugin_type=fixed_price) self.pricing_service2.charge_diff_to_real_costs = self.pricing_service1 self.pricing_service2.save() self.pricing_service3 = PricingServiceFactory(plugin_type=fixed_price) self.pricing_service3.charge_diff_to_real_costs = self.pricing_service1 self.pricing_service3.save()
def setUp(self): self.today = date(2013, 10, 10) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) self.extra_cost_type = ExtraCostTypeFactory() self.service_environments = ServiceEnvironmentFactory.create_batch(5) for se in self.service_environments[:5]: models.ExtraCost( extra_cost_type=self.extra_cost_type, start=self.start, end=self.end, service_environment=se, cost=3000, # daily cost: 100 forecast_cost=6000, # daily cost: 200 ).save()
def setUp(self): self.today = date(2014, 11, 10) self.service_environments = ServiceEnvironmentFactory.create_batch(5) self.pricing_service1 = PricingServiceFactory() fixed_price = ( models.PricingServicePlugin.pricing_service_fixed_price_plugin ) self.pricing_service2 = PricingServiceFactory(plugin_type=fixed_price) self.pricing_service2.charge_diff_to_real_costs = self.pricing_service1 self.pricing_service2.save() self.pricing_service3 = PricingServiceFactory(plugin_type=fixed_price) self.pricing_service3.charge_diff_to_real_costs = self.pricing_service1 self.pricing_service3.save()
def _create_usages(self): self.service_environments = ServiceEnvironmentFactory.create_batch(2) for usage_type in self.usage_types: for se, value in zip(self.service_environments, [30, 70]): dpo = se.dummy_pricing_object for day in rrule.rrule( rrule.DAILY, dtstart=self.start, until=self.end ): models.DailyUsage.objects.create( date=day, service_environment=se, daily_pricing_object=dpo.get_daily_pricing_object(day), type=usage_type, value=value, )
def setUp(self): self.today = date(2013, 10, 10) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) self.pricing_service = PricingServiceFactory() self.service_usage_types = UsageTypeFactory.create_batch( 2, usage_type='SU', ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.pricing_service, start=self.start, end=self.end, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.pricing_service, start=self.start, end=self.end, ) self.service_environments = ServiceEnvironmentFactory.create_batch(2) self.maxDiff = None
def setUp(self): self.maxDiff = None self.today = date(2013, 10, 10) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) fixed_price = ( models.PricingServicePlugin.pricing_service_fixed_price_plugin ) self.pricing_service1 = PricingServiceFactory(plugin_type=fixed_price) self.service_environments = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.pricing_service1, ) self.service_environments.append(ServiceEnvironmentFactory()) self.service_usage_types = UsageTypeFactory.create_batch( 2, usage_type='SU', ) self.sut1 = models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=100, ) self.sut2 = models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=100, ) self.se1_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[0] ) self.se2_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[1] ) self.se3_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[2] ) models.UsagePrice( type=self.service_usage_types[0], price=10, forecast_price=20, start=self.start, end=self.end, ).save() models.UsagePrice( type=self.service_usage_types[1], price=20, forecast_price=40, start=self.start, end=self.end, ).save() days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: for dpo in models.DailyPricingObject.objects.all(): DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=10, type=self.service_usage_types[0], ) DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=5, type=self.service_usage_types[1], )
def _init(self): self.ps1, self.ps2, self.ps3 = PricingServiceFactory.create_batch(3) self.se1, self.se2 = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.ps1, ) self.se3, self.se4 = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.ps2, ) self.se5 = ServiceEnvironmentFactory( service__pricing_service=self.ps3 ) self.other_se = ServiceEnvironmentFactory.create_batch(5) self.service_usage_types = UsageTypeFactory.create_batch( 4, usage_type='SU', ) self.ps1.excluded_services.add(self.other_se[0].service) self.ps1.save() self.ps2.excluded_services.add(self.other_se[1].service) self.ps2.save() self.service_usage_types[0].excluded_services.add( self.other_se[2].service ) self.service_usage_types[0].save() self.service_usage_types[3].excluded_services.add( self.other_se[4].service ) self.service_usage_types[3].save() models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.ps1, start=self.start, end=self.end, percent=100, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.ps2, start=self.start, end=self.end, percent=70, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[2], pricing_service=self.ps2, start=self.start, end=self.end, percent=30, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[3], pricing_service=self.ps3, start=self.start, end=self.end, percent=100, )
def setUp(self): self.maxDiff = None self.today = date(2013, 10, 10) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) # TODO: unify with usages generator # base usages self.base_usage_type = UsageTypeFactory( usage_type='BU', by_cost=True, ) # regular usage self.regular_usage_type = UsageTypeFactory( usage_type='RU', by_cost=False, ) # team self.team = TeamFactory() # extra cost self.extra_cost_type = ExtraCostTypeFactory() # pricing services self.pricing_service1 = PricingServiceFactory() self.pricing_service1.regular_usage_types.add(self.regular_usage_type) self.pricing_service1.save() # NOTICE THAT PRICING SERVICE 2 IS NOT CHARGED FOR REGULAR USAGE self.pricing_service2 = PricingServiceFactory() # services self.service_environments = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.pricing_service1, ) self.service_environments.append(ServiceEnvironmentFactory.create( service__pricing_service=self.pricing_service2, )) self.service_environments.extend( ServiceEnvironmentFactory.create_batch(3) ) # pricing service usages self.service_usage_types = UsageTypeFactory.create_batch( 3, usage_type='SU', ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=30, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=70, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[2], pricing_service=self.pricing_service2, start=self.start, end=self.end, percent=100, ) # daily pricing objects # in pricing service 1 (& use pricing service 2) self.se1_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[0] ) self.se2_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[1] ) # in pricing service 2 self.se3_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[2] ) # use pricing service 1 self.se4_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[3] ) self.se5_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[4] ) # use pricing service 2 (besides se1_dpo and se2_dpo) self.se6_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[5] ) # other self.se7_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[5] ) # SO FAR SUMMARY: # there are 2 pricing services: # pricing service 1: collect costs from 2 services (4 pricing objects: # se1_dpo and se2_dpo); is distributed according to usages of 2 service # usage types: sut[0] (30%) and sut[1] (70%) # pricing service 2: collect costs from 1 service (2 pricing objects: # se3_dpo); is distributed according to usages of 1 service usage type # (sut[2] - 100%) # there are also another 2 service environments (each has 2 pricing # objects) # TOTAL DAILY PRICING OBJECTS: 14 # USAGES # base usage type models.UsagePrice( type=self.base_usage_type, # cost per unit: 1, daily cost (usages are the same for each date): # 140, cost per daily pricing object: 10 cost=4200, forecast_cost=8400, # cost per unit: 2 start=self.start, end=self.end, ).save() # regular usage type models.UsagePrice( type=self.regular_usage_type, price=10, forecast_price=20, start=self.start, end=self.end, ).save() days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: # TODO: fix assigning DPO with wrong date to DailyUsage for dpo in models.DailyPricingObject.objects.all(): DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=10, type=self.base_usage_type, ) DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=5, type=self.regular_usage_type, ) # team team_cost = models.TeamCost( team=self.team, cost=300, # daily cost: 10 forecast_cost=600, # daily cost: 20 start=self.start, end=self.end, ) team_cost.save() for se in self.service_environments[:5]: models.TeamServiceEnvironmentPercent( team_cost=team_cost, service_environment=se, percent=20, # 2 per day per se ).save() # extra cost for se in self.service_environments[:5]: models.ExtraCost( extra_cost_type=self.extra_cost_type, start=self.start, end=self.end, service_environment=se, cost=3000, # daily cost: 100 forecast_cost=6000, # daily cost: 200 ).save() # pricing service 1 service usage types usages for dpo, multiplier in zip(self.se4_dpo + self.se5_dpo, [1, 1, 3, 3]): days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: DailyUsageFactory( type=self.service_usage_types[0], daily_pricing_object=dpo, service_environment=dpo.service_environment, value=10 * multiplier, date=day, ) DailyUsageFactory( type=self.service_usage_types[1], daily_pricing_object=dpo, service_environment=dpo.service_environment, value=50 * multiplier, date=day, ) # pricing service 2 service usage types usages for dpo in self.se1_dpo + self.se6_dpo: days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: DailyUsageFactory( type=self.service_usage_types[2], daily_pricing_object=dpo, service_environment=dpo.service_environment, value=100, date=day, )
def setUp(self): self.maxDiff = None self.today = date(2013, 10, 10) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) # TODO: unify with usages generator # base usages self.base_usage_type = UsageTypeFactory( usage_type='BU', by_cost=True, ) # regular usage self.regular_usage_type = UsageTypeFactory( usage_type='RU', by_cost=False, ) # team self.team = TeamFactory() # extra cost self.extra_cost_type = ExtraCostTypeFactory() # pricing services self.pricing_service1 = PricingServiceFactory() self.pricing_service1.regular_usage_types.add(self.regular_usage_type) self.pricing_service1.save() # NOTICE THAT PRICING SERVICE 2 IS NOT CHARGED FOR REGULAR USAGE self.pricing_service2 = PricingServiceFactory() # services self.service_environments = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.pricing_service1, ) self.service_environments.append( ServiceEnvironmentFactory.create( service__pricing_service=self.pricing_service2, )) self.service_environments.extend( ServiceEnvironmentFactory.create_batch(3)) # pricing service usages self.service_usage_types = UsageTypeFactory.create_batch( 3, usage_type='SU', ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=30, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=70, ) models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[2], pricing_service=self.pricing_service2, start=self.start, end=self.end, percent=100, ) # daily pricing objects # in pricing service 1 (& use pricing service 2) self.se1_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[0]) self.se2_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[1]) # in pricing service 2 self.se3_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[2]) # use pricing service 1 self.se4_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[3]) self.se5_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[4]) # use pricing service 2 (besides se1_dpo and se2_dpo) self.se6_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[5]) # other self.se7_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[5]) # SO FAR SUMMARY: # there are 2 pricing services: # pricing service 1: collect costs from 2 services (4 pricing objects: # se1_dpo and se2_dpo); is distributed according to usages of 2 service # usage types: sut[0] (30%) and sut[1] (70%) # pricing service 2: collect costs from 1 service (2 pricing objects: # se3_dpo); is distributed according to usages of 1 service usage type # (sut[2] - 100%) # there are also another 2 service environments (each has 2 pricing # objects) # TOTAL DAILY PRICING OBJECTS: 14 # USAGES # base usage type models.UsagePrice( type=self.base_usage_type, # cost per unit: 1, daily cost (usages are the same for each date): # 140, cost per daily pricing object: 10 cost=4200, forecast_cost=8400, # cost per unit: 2 start=self.start, end=self.end, ).save() # regular usage type models.UsagePrice( type=self.regular_usage_type, price=10, forecast_price=20, start=self.start, end=self.end, ).save() days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: # TODO: fix assigning DPO with wrong date to DailyUsage for dpo in models.DailyPricingObject.objects.all(): DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=10, type=self.base_usage_type, ) DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=5, type=self.regular_usage_type, ) # team team_cost = models.TeamCost( team=self.team, cost=300, # daily cost: 10 forecast_cost=600, # daily cost: 20 start=self.start, end=self.end, ) team_cost.save() for se in self.service_environments[:5]: models.TeamServiceEnvironmentPercent( team_cost=team_cost, service_environment=se, percent=20, # 2 per day per se ).save() # extra cost for se in self.service_environments[:5]: models.ExtraCost( extra_cost_type=self.extra_cost_type, start=self.start, end=self.end, service_environment=se, cost=3000, # daily cost: 100 forecast_cost=6000, # daily cost: 200 ).save() # pricing service 1 service usage types usages for dpo, multiplier in zip(self.se4_dpo + self.se5_dpo, [1, 1, 3, 3]): days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: DailyUsageFactory( type=self.service_usage_types[0], daily_pricing_object=dpo, service_environment=dpo.service_environment, value=10 * multiplier, date=day, ) DailyUsageFactory( type=self.service_usage_types[1], daily_pricing_object=dpo, service_environment=dpo.service_environment, value=50 * multiplier, date=day, ) # pricing service 2 service usage types usages for dpo in self.se1_dpo + self.se6_dpo: days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: DailyUsageFactory( type=self.service_usage_types[2], daily_pricing_object=dpo, service_environment=dpo.service_environment, value=100, date=day, )
def setUp(self): self.maxDiff = None self.today = date(2013, 10, 10) self.start = date(2013, 10, 1) self.end = date(2013, 10, 30) fixed_price = ( models.PricingServicePlugin.pricing_service_fixed_price_plugin) self.pricing_service1 = PricingServiceFactory(plugin_type=fixed_price) self.service_environments = ServiceEnvironmentFactory.create_batch( 2, service__pricing_service=self.pricing_service1, ) self.service_environments.append(ServiceEnvironmentFactory()) self.service_usage_types = UsageTypeFactory.create_batch( 2, usage_type='SU', ) self.sut1 = models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[0], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=100, ) self.sut2 = models.ServiceUsageTypes.objects.create( usage_type=self.service_usage_types[1], pricing_service=self.pricing_service1, start=self.start, end=self.end, percent=100, ) self.se1_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[0]) self.se2_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[1]) self.se3_dpo = DailyPricingObjectFactory.create_batch( 2, service_environment=self.service_environments[2]) models.UsagePrice( type=self.service_usage_types[0], price=10, forecast_price=20, start=self.start, end=self.end, ).save() models.UsagePrice( type=self.service_usage_types[1], price=20, forecast_price=40, start=self.start, end=self.end, ).save() days = rrule.rrule(rrule.DAILY, dtstart=self.start, until=self.end) for day in days: for dpo in models.DailyPricingObject.objects.all(): DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=10, type=self.service_usage_types[0], ) DailyUsageFactory( date=day, daily_pricing_object=dpo, service_environment=dpo.service_environment, value=5, type=self.service_usage_types[1], )