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, }, })
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') } })
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'))
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)
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 } })