def test_cost(self): dev = Device.create(sn='device', model_type=DeviceType.rack_server, model_name='device') dmg = DeviceModelGroup(name='DeviceModelGroup') dmg.price = 100 dmg.save() dev.model.group = dmg dev.model.save() mk = MarginKind(name='50%', margin=50) mk.save() dev.margin_kind = mk dk = DeprecationKind(name='10 months', months=10) dk.save() dev.deprecation_kind = dk dev.save() self.assertEqual(pricing.get_device_cost(dev), 15) pricing.device_update_cached(dev) dev = Device.objects.get(id=dev.id) self.assertEqual(pricing.get_device_cost(dev), 15) self.assertEqual(dev.cached_cost, 15)
def test_price_deprecation(self): # Device after deprecation period should have raw price = 0 dev = Device.create(sn='device', model_type=DeviceType.rack_server, model_name='device') dmg = DeviceModelGroup(name='DeviceModelGroup') dmg.price = 100 dmg.save() dev.model.group = dmg dev.purchase_date = datetime.today() - timedelta(11 * (365 / 12)) dev.model.save() mk = MarginKind(name='50%', margin=50) mk.save() dev.margin_kind = mk dk = DeprecationKind(name='10 months', months=10) dk.save() dev.deprecation_kind = dk dev.save() pricing.device_update_cached(dev) dev = Device.objects.get(id=dev.id) self.assertEqual(get_device_raw_price(dev), 0) self.assertEqual(dev.cached_price, 0) self.assertEqual(dev.cached_cost, 0)
def setUp(self): self.client = login_as_su() venture = Venture(name='venture', symbol='ventureSymbol') venture.save() self.venture = venture venture_role = VentureRole(name='role', venture=self.venture) venture_role.save() self.venture_role = venture_role d_kind = DeprecationKind(name='12 months', months=12) d_kind.save() self.kind = DeprecationKind.objects.get(name='12 months') # Cross - devices self.device_after_deprecation = Device.create( sn='device_after_deprecation', deprecation_kind=self.kind, support_expiration_date=datetime.datetime(2003, 01, 02), purchase_date=datetime.datetime(2001, 01, 01), warranty_expiration_date=datetime.datetime(2005, 01, 02), venture=self.venture, venture_role=self.venture_role, model_name='xxx', model_type=DeviceType.unknown, ) self.device_after_deprecation.name = 'Device1' self.device_after_deprecation.save() self.device_with_blanks = Device.create( sn='device_with_blanks', deprecation_date=None, deprecation_kind=None, support_expiration_date=None, purchase_date=None, venture=None, venture_role=None, model_name='xxx', model_type=DeviceType.unknown, ) self.device_with_blanks.name = 'Device2' self.device_with_blanks.save()