Esempio n. 1
0
 def test_get_date_ranges_percentage(self):
     result = ServicePlugin._get_date_ranges_percentage(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 20),
         service=self.service,
     )
     self.assertEquals(result, {
         (datetime.date(2013, 10, 10), datetime.date(2013, 10, 15)): {
             3: 30.0,
             4: 70.0,
         },
         (datetime.date(2013, 10, 16), datetime.date(2013, 10, 20)): {
             3: 40.0,
             4: 60.0,
         },
     })
Esempio n. 2
0
 def test_get_date_ranges_percentage(self):
     result = ServicePlugin._get_date_ranges_percentage(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 20),
         service=self.service,
     )
     self.assertEquals(result, {
         (datetime.date(2013, 10, 10), datetime.date(2013, 10, 15)): {
             3: 30.0,
             4: 70.0,
         },
         (datetime.date(2013, 10, 16), datetime.date(2013, 10, 20)): {
             3: 40.0,
             4: 60.0,
         },
     })
Esempio n. 3
0
    def test_get_date_ranges_percentage2(self):
        self.service = models.Service(name='Service2')
        self.service.save()
        self.service.base_usage_types.add(self.usage_type_cost_wh,
                                          self.usage_type)
        self.service_usage_type3 = models.UsageType(
            name='ServiceUsageType3',
            symbol='sut3',
            type='SU',
        )
        self.service_usage_type3.save()

        # |__________||____|
        # |____||____||____|
        # |____||__________|
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type1,
            service=self.service,
            start=datetime.date(2013, 10, 1),
            end=datetime.date(2013, 10, 20),
            percent=50,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type2,
            service=self.service,
            start=datetime.date(2013, 10, 1),
            end=datetime.date(2013, 10, 10),
            percent=30,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type3,
            service=self.service,
            start=datetime.date(2013, 10, 1),
            end=datetime.date(2013, 10, 10),
            percent=20,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type2,
            service=self.service,
            start=datetime.date(2013, 10, 11),
            end=datetime.date(2013, 10, 20),
            percent=10,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type3,
            service=self.service,
            start=datetime.date(2013, 10, 11),
            end=datetime.date(2013, 10, 30),
            percent=40,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type1,
            service=self.service,
            start=datetime.date(2013, 10, 21),
            end=datetime.date(2013, 10, 30),
            percent=30,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type2,
            service=self.service,
            start=datetime.date(2013, 10, 21),
            end=datetime.date(2013, 10, 30),
            percent=30,
        ).save()
        self.service.save()

        result = ServicePlugin._get_date_ranges_percentage(
            start=datetime.date(2013, 10, 5),
            end=datetime.date(2013, 10, 25),
            service=self.service,
        )

        self.assertEquals(
            result, {
                (datetime.date(2013, 10, 5), datetime.date(2013, 10, 10)): {
                    3: 50.0,
                    4: 30.0,
                    5: 20.0,
                },
                (datetime.date(2013, 10, 11), datetime.date(2013, 10, 20)): {
                    3: 50.0,
                    4: 10.0,
                    5: 40.0,
                },
                (datetime.date(2013, 10, 21), datetime.date(2013, 10, 25)): {
                    3: 30.0,
                    4: 30.0,
                    5: 40.0,
                },
            })
Esempio n. 4
0
    def test_get_date_ranges_percentage2(self):
        self.service = models.Service(
            name='Service2'
        )
        self.service.save()
        self.service.base_usage_types.add(
            self.usage_type_cost_wh,
            self.usage_type
        )
        self.service_usage_type3 = models.UsageType(
            name='ServiceUsageType3',
            symbol='sut3',
            type='SU',
        )
        self.service_usage_type3.save()

        # |__________||____|
        # |____||____||____|
        # |____||__________|
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type1,
            service=self.service,
            start=datetime.date(2013, 10, 1),
            end=datetime.date(2013, 10, 20),
            percent=50,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type2,
            service=self.service,
            start=datetime.date(2013, 10, 1),
            end=datetime.date(2013, 10, 10),
            percent=30,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type3,
            service=self.service,
            start=datetime.date(2013, 10, 1),
            end=datetime.date(2013, 10, 10),
            percent=20,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type2,
            service=self.service,
            start=datetime.date(2013, 10, 11),
            end=datetime.date(2013, 10, 20),
            percent=10,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type3,
            service=self.service,
            start=datetime.date(2013, 10, 11),
            end=datetime.date(2013, 10, 30),
            percent=40,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type1,
            service=self.service,
            start=datetime.date(2013, 10, 21),
            end=datetime.date(2013, 10, 30),
            percent=30,
        ).save()
        models.ServiceUsageTypes(
            usage_type=self.service_usage_type2,
            service=self.service,
            start=datetime.date(2013, 10, 21),
            end=datetime.date(2013, 10, 30),
            percent=30,
        ).save()
        self.service.save()

        result = ServicePlugin._get_date_ranges_percentage(
            start=datetime.date(2013, 10, 5),
            end=datetime.date(2013, 10, 25),
            service=self.service,
        )

        self.assertEquals(result, {
            (datetime.date(2013, 10, 5), datetime.date(2013, 10, 10)): {
                3: 50.0,
                4: 30.0,
                5: 20.0,
            },
            (datetime.date(2013, 10, 11), datetime.date(2013, 10, 20)): {
                3: 50.0,
                4: 10.0,
                5: 40.0,
            },
            (datetime.date(2013, 10, 21), datetime.date(2013, 10, 25)): {
                3: 30.0,
                4: 30.0,
                5: 40.0,
            },
        })