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_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 setUp(self): # ventures self.venture1 = utils.get_or_create_venture() self.venture2 = utils.get_or_create_venture() self.venture3 = utils.get_or_create_venture() self.ventures_subset = [self.venture1, self.venture2] self.ventures = models.Venture.objects.all() self.ventures_devices = {} # devices # add j*5 devices for each venture start = datetime.date(2013, 10, 8) end = datetime.date(2013, 10, 22) for j, venture in enumerate(self.ventures, start=1): self.ventures_devices[venture.id] = [] for k in range(j * 5): # add device device = utils.get_or_create_device() self.ventures_devices[venture.id].append(device.id) for day in rrule.rrule(rrule.DAILY, dtstart=start, until=end): utils.get_or_create_dailydevice( date=day, venture=venture, device=device, name=device.name, price=1460*j, deprecation_rate=25, is_deprecated=False, )
def test_costs_per_device(self): device1 = utils.get_or_create_device( asset_id=1234, barcode='12345', sn='1111-1111-1111', ) device2 = utils.get_or_create_device( asset_id=1235, barcode='12346', sn='1111-1111-1112', ) start = datetime.date(2013, 10, 8) end = datetime.date(2013, 10, 22) for i, device in enumerate([device1, device2]): for day in rrule.rrule(rrule.DAILY, dtstart=start, until=end): utils.get_or_create_dailydevice( date=day, name='Device{0}'.format(i), price=100 * i, deprecation_rate=0.25, is_deprecated=False, venture=self.venture1, device=device, ) result = Information( start=datetime.date(2013, 10, 10), end=datetime.date(2013, 10, 25), ventures=[self.venture1], type='costs_per_device', ) self.assertEquals(result, { device1.id: { 'asset_id': 1234, 'barcode': '12345', 'id': device1.id, 'name': 'Default1234', 'sn': '1111-1111-1111' }, device2.id: { 'asset_id': 1235, 'barcode': '12346', 'id': device2.id, 'name': 'Default1235', 'sn': '1111-1111-1112' } })
def setUp(self): self.venture1 = utils.get_or_create_venture() self.venture2 = utils.get_or_create_venture() self.venture3 = utils.get_or_create_venture(parent=self.venture1) self.device1 = utils.get_or_create_device( device_id=11, sn='1111-1111-1111', barcode='12345', ) self.device2 = utils.get_or_create_device( device_id=12, sn='1111-1111-1112', barcode='12346', ) self.dailydevice1_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 10), self.device1, self.venture1, name=self.device1.name, ) self.dailydevice1_2 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 11), self.device1, self.venture2, name=self.device1.name, ) self.dailydevice2_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 10), self.device2, self.venture2, name=self.device2.name, ) self.dailydevice2_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 11), self.device2, self.venture1, name=self.device2.name, ) self.dailydevice3_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 12), self.device1, self.venture3, name=self.device1.name, )
def setUp(self): self.venture1 = utils.get_or_create_venture() self.venture2 = utils.get_or_create_venture() self.venture3 = utils.get_or_create_venture(parent=self.venture1) self.device1 = utils.get_or_create_device( device_id=11, sn='1111-1111-1111', barcode='12345', ) self.device2 = utils.get_or_create_device( device_id=12, sn='1111-1111-1112', barcode='12346', ) self.dailydevice1_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 10), self.device1, self.venture1, name=self.device1.name, ) self.dailydevice1_2 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 11), self.device1, self.venture2, name=self.device1.name, ) self.dailydevice2_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 10), self.device2, self.venture2, name=self.device2.name, ) self.dailydevice2_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 11), self.device2, self.venture1, name=self.device2.name, ) self.dailydevice3_1 = utils.get_or_create_dailydevice( datetime.date(2013, 10, 12), self.device1, self.venture3, name=self.device1.name, )
def setUp(self): self.report_start = datetime.date(2013, 4, 20) self.report_end = datetime.date(2013, 4, 30) # ventures self.venture = utils.get_or_create_venture() self.subventure = utils.get_or_create_venture(parent=self.venture) # usages self.usage_type = models.UsageType( name='UT1', symbol='ut1', type='BU', show_in_devices_report=True, ) self.usage_type.save() usage_type2 = models.UsageType( name='UT2', symbol='ut2', type='BU', show_in_devices_report=False, ) usage_type2.save() # usages by warehouse self.warehouse_usage_type = models.UsageType( name='UT3', symbol='ut3', by_warehouse=True, order=3, type='BU', use_universal_plugin=False, show_in_devices_report=True, ) self.warehouse_usage_type.save() # devices self.device1 = utils.get_or_create_device() self.device2 = utils.get_or_create_device() self.device3 = utils.get_or_create_device() # device without daily self.device_virtual = utils.get_or_create_device(is_virtual=True) # dailydevices days = rrule.rrule( rrule.DAILY, dtstart=self.report_start, until=self.report_end, ) for device in (self.device1, self.device2, self.device_virtual): for j, day in enumerate(days, start=1): dailydevice = utils.get_or_create_dailydevice( date=day, device=device, venture=self.venture ) dailydevice.save()
def test_update(self): data = { 'mount_device_id': self.device.device_id, 'size': 10 } get_or_create_dailydevice( date=self.today, device=self.device, venture=self.venture, ) result = update(data, self.today, self.usage_type, None) self.assertTrue(result) self.assertEqual(DailyUsage.objects.count(), 1) daily_usage = DailyUsage.objects.all()[0] self.assertEqual(daily_usage.pricing_venture, self.venture) self.assertEqual(daily_usage.pricing_device, self.device) self.assertEqual(daily_usage.value, 10) self.assertEqual(daily_usage.date.date(), self.today) self.assertEqual(daily_usage.type, self.usage_type)
def setUp(self): self.report_start = datetime.date(2013, 4, 20) self.report_end = datetime.date(2013, 4, 30) # ventures self.venture = utils.get_or_create_venture() self.subventure = utils.get_or_create_venture(parent=self.venture) # usages self.usage_type = models.UsageType( name='UT1', symbol='ut1', type='BU', show_in_devices_report=True, ) self.usage_type.save() usage_type2 = models.UsageType( name='UT2', symbol='ut2', type='BU', show_in_devices_report=False, ) usage_type2.save() # usages by warehouse self.warehouse_usage_type = models.UsageType( name='UT3', symbol='ut3', by_warehouse=True, order=3, type='BU', use_universal_plugin=False, show_in_devices_report=True, ) self.warehouse_usage_type.save() # devices self.device1 = utils.get_or_create_device() self.device2 = utils.get_or_create_device() self.device3 = utils.get_or_create_device() # device without daily self.device_virtual = utils.get_or_create_device(is_virtual=True) # dailydevices days = rrule.rrule( rrule.DAILY, dtstart=self.report_start, until=self.report_end, ) for device in (self.device1, self.device2, self.device_virtual): for j, day in enumerate(days, start=1): dailydevice = utils.get_or_create_dailydevice( date=day, device=device, venture=self.venture) dailydevice.save()
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, } ])