示例#1
0
 def test_dailyusages(self):
     device = utils.get_or_create_device()
     utils.get_or_create_dailydevice(
         date=datetime.date(2013, 10, 12),
         venture=self.venture1,
         device=device,
         name=device.name,
         price=100,
         deprecation_rate=0.25,
         is_deprecated=False,
     )
     result = Deprecation(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 13),
         ventures=self.ventures_subset,
         type='dailyusages',
     )
     self.assertEquals(result, {
         datetime.date(2013, 10, 10): {
             self.venture1.id: 5,
             self.venture2.id: 10,
         },
         datetime.date(2013, 10, 11): {
             self.venture1.id: 5,
             self.venture2.id: 10,
         },
         datetime.date(2013, 10, 12): {
             self.venture1.id: 6,  # additional device!
             self.venture2.id: 10,
         },
         datetime.date(2013, 10, 13): {
             self.venture1.id: 5,
             self.venture2.id: 10,
         },
     })
示例#2
0
 def test_costs_per_device_deprecated(self):
     venture = utils.get_or_create_venture()
     device = utils.get_or_create_device()
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 10),
         device,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=True,
     )
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 11),
         device,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=True,
     )
     result = Deprecation(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 13),
         ventures=[venture],
         type='costs_per_device',
     )
     self.assertEquals(result, {
         device.id: {
             'assets_cost': D('0'),
             'assets_count': 0.5,
             'deprecation_rate': D('25'),
             'is_deprecated': _('Yes')
         }
     })
示例#3
0
 def test_total_cost(self):
     result = Deprecation(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 25),
         ventures=self.ventures_subset,
         type='total_cost',
     )
     # venture1: 13 (days) * 1 (daily cost) * 5 (devices) = 65
     # venture2: 13 (days) * 2 (daily cost) * 10 (devices) 260
     self.assertEquals(result, D('325'))
示例#4
0
 def test_costs_per_device(self):
     result = Deprecation(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 20),
         ventures=[self.venture1],
         type='costs_per_device',
     )
     expected = dict((v, {
         'assets_cost': D('11'),
         'assets_count': 1.0,
         'deprecation_rate': D('25'),
         'is_deprecated': _('No')
     }) for v in self.ventures_devices[self.venture1.id])
     self.assertEquals(result, expected)
示例#5
0
 def test_get_asset_count_and_cost_group_by_device(self):
     venture = utils.get_or_create_venture()
     device1 = utils.get_or_create_device()
     device2 = utils.get_or_create_device()
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 10),
         device1,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=False,
     )
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 11),
         device2,
         venture,
         price=1460,
         deprecation_rate=25,
         is_deprecated=False,
     )
     utils.get_or_create_dailydevice(
         datetime.date(2013, 10, 12),
         device2,
         self.venture1,
         price=1460,
         deprecation_rate=25,
         is_deprecated=False,
     )
     result = Deprecation.get_assets_count_and_cost(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 20),
         ventures=[venture],
         group_by='pricing_device',
     )
     self.assertEquals(list(result), [
         {
             'assets_cost': D('1'),
             'assets_count': 1.0,
             'pricing_device': device1.id,
         },
         {
             'assets_cost': D('1'),
             'assets_count': 1.0,
             'pricing_device': device2.id,
         }
     ])
示例#6
0
 def test_costs(self):
     result = Deprecation(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 20),
         ventures=self.ventures_subset,
     )
     # dailycost of asset for venture 1 is 1460*25/36500 = 1
     # dailycost of asset for venture 2 is 2920*25/36500 = 2
     self.assertEquals(result, {
         self.venture1.id: {
             'assets_cost': D('55'),  # 1 * 5 (devices) * 11 (days)
             'assets_count': 5.0
         },
         self.venture2.id: {
             'assets_cost': D('220'),  # 2 * 10 (devices) * 11 (days)
             'assets_count': 10.0
         }
     })
示例#7
0
 def test_get_asset_count_and_cost(self):
     result = Deprecation.get_assets_count_and_cost(
         start=datetime.date(2013, 10, 10),
         end=datetime.date(2013, 10, 20),
         ventures=self.ventures_subset,
     )
     self.assertEquals(list(result), [
         {
             'assets_cost': D('55'),  # 1 * 5 (devices) * 11 (days)
             'assets_count': 55.0,  # 5 (devices) * 11 (days)
             'pricing_venture': self.venture1.id,
         },
         {
             'assets_cost': D('220'),  # 2 * 10 (devices) * 11 (days)
             'assets_count': 110.0,  # 10 (devices) * 11 (days)
             'pricing_venture': self.venture2.id,
         }
     ])