def generate_back_office(self): self.stdout.write('Generating Back Office assets') back_office_status = BackOfficeAssetStatus() status_count = len(back_office_status) per_page = self.object_limit / status_count parent_category = CategoryFactory(name='BACK OFFICE', imei_required=False) for i in range(3): ProfitCenterFactory() for status_id, name in back_office_status: for i in range(int(per_page)): BackOfficeAssetFactory( status=status_id, user=self.get_user(), owner=self.get_user(), model=BackOfficeAssetModelFactory(category=CategoryFactory( parent=parent_category))) BackOfficeAssetFactory(status=status_id, user=self.get_user(), owner=self.get_user(), model=BackOfficeAssetModelFactory( category=CategoryFactory( name='Mobile Phone', imei_required=True, parent=parent_category), name='Phone'), imei=get_imei(15))
class CategoryAPITests(RalphAPITestCase): def setUp(self): super().setUp() self.category = CategoryFactory(name='rack-servers') def test_get_category_list(self): url = reverse('category-list') response = self.client.get(url, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['count'], 1) self.assertEqual( response.data['results'][0]['name'], self.category.name ) def test_get_category_details(self): url = reverse('category-detail', args=(self.category.id,)) response = self.client.get(url, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['name'], self.category.name) def test_create_category(self): url = reverse('category-list') data = { 'name': 'cell-phones', 'code': 'cp' } response = self.client.post(url, data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.data['name'], 'cell-phones') self.assertEqual(Category.objects.count(), 2) category = Category.objects.get(pk=response.data['id']) self.assertEqual(category.name, 'cell-phones') self.assertEqual(category.code, 'cp') self.assertIsNone(category.parent) def test_create_category_with_parent(self): url = reverse('category-list') data = { 'name': 'cell-phones', 'parent': self.category.id, } response = self.client.post(url, data, format='json') self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.data['name'], 'cell-phones') self.assertEqual(Category.objects.count(), 2) category = Category.objects.get(pk=response.data['id']) self.assertEqual(category.name, 'cell-phones') self.assertEqual(category.parent, self.category) def test_patch_category(self): url = reverse('category-detail', args=(self.category.id,)) data = { 'name': 'cell-phones' } response = self.client.patch(url, data, format='json') self.assertEqual(response.status_code, status.HTTP_200_OK) self.category.refresh_from_db() self.assertEqual(self.category.name, 'cell-phones')
def setUpClass(cls): super().setUpClass() cls.region_pl = RegionFactory(name='PL', country=Country.pl) cls.region_us = RegionFactory(name='US', country=Country.us) cls.category = CategoryFactory(code='PC') cls.category_without_code = CategoryFactory() cls.model = BackOfficeAssetModelFactory(category=cls.category) cls.model_without_code = BackOfficeAssetModelFactory( category=cls.category_without_code)
def setUp(self): super().setUp() AssetLastHostname.objects.create(prefix='POLPC', counter=1000) self.bo_asset = BackOfficeAssetFactory( model=self.model, hostname='abc', region=self.region_pl, ) self.bo_asset_2 = BackOfficeAssetFactory( model=self.model, hostname='abc2', region=self.region_pl, status=BackOfficeAssetStatus.liquidated.id, invoice_date=None ) self.bo_asset_3 = BackOfficeAssetFactory( model=self.model, hostname='abc3', region=self.region_pl, status=BackOfficeAssetStatus.liquidated.id, invoice_date=datetime(2016, 1, 11).date(), depreciation_rate=50 ) self.bo_asset_4 = BackOfficeAssetFactory( model=self.model, hostname='abc3', region=self.region_pl, status=BackOfficeAssetStatus.liquidated.id, invoice_date=datetime(2016, 1, 11).date(), depreciation_end_date=datetime(2015, 1, 11).date(), depreciation_rate=50 ) self.category_parent = CategoryFactory( code='Mob1', default_depreciation_rate=30 ) self.category_2 = CategoryFactory( code='Mob2', default_depreciation_rate=25 ) self.category_3 = CategoryFactory( code='Mob3', parent=self.category_parent, default_depreciation_rate=0 )
def test_generate_next_hostname_out_of_range(self): category = CategoryFactory(code='PC') model = BackOfficeAssetModelFactory(category=category) asset = BackOfficeAssetFactory(model=model, region=self.region_pl, hostname='') AssetLastHostname.objects.create(prefix='POLPC', counter=99999) template_vars = { 'code': asset.model.category.code, 'country_code': asset.country_code, } asset.generate_hostname(template_vars=template_vars) self.assertEqual(asset.hostname, 'POLPC100000')
def test_generate_first_hostname(self): """Scenario: - none of assets has hostname - after generate first of asset have XXXYY00001 in hostname field """ category = CategoryFactory(code='PC') model = BackOfficeAssetModelFactory(category=category) asset = BackOfficeAssetFactory(model=model, hostname='') template_vars = { 'code': asset.model.category.code, 'country_code': asset.country_code, } asset.generate_hostname(template_vars=template_vars) self.assertEqual(asset.hostname, 'POLPC00001')
def test_generate_next_hostname(self): category = CategoryFactory(code='PC') model = BackOfficeAssetModelFactory(category=category) asset = BackOfficeAssetFactory(model=model, region=self.region_pl, hostname='') BackOfficeAssetFactory(region=self.region_pl, hostname='POLSW00003') AssetLastHostname.increment_hostname(prefix='POLPC') AssetLastHostname.increment_hostname(prefix='POLPC') template_vars = { 'code': asset.model.category.code, 'country_code': asset.country_code, } asset.generate_hostname(template_vars=template_vars) self.assertEqual(asset.hostname, 'POLPC00003')
def setUp(self): self.model = DataCenterAssetModelFactory( category=CategoryFactory(name="Keyboard"), type=ObjectModelType.data_center, name='Keyboard1', manufacturer=ManufacturerFactory(name='M1')) self.dc_1 = DataCenterAssetFactory( force_depreciation=False, model=self.model, ) self.dc_1.tags.add('tag1', 'tag2') self.licence = LicenceFactory( number_bought=1, niw='N/A', software__name='Project Info', software__asset_type=ObjectModelType.data_center, region__name='US', ) BaseObjectLicence.objects.create(licence=self.licence, base_object=self.dc_1.baseobject_ptr)
def _create_models(self): self.keyboard_model = DataCenterAssetModelFactory( category=CategoryFactory(name="Keyboard"), type=ObjectModelType.data_center, name='Keyboard1', ) self.mouse_model = DataCenterAssetModelFactory( category=CategoryFactory(name="Mouse"), type=ObjectModelType.data_center, name='Mouse1', ) self.pendrive_model = DataCenterAssetModelFactory( category=CategoryFactory(name="Pendrive"), type=ObjectModelType.data_center, name='Pendrive1', ) self.model_monitor = DataCenterAssetModelFactory( category=CategoryFactory(name="Monitor"), type=ObjectModelType.data_center, name='Monitor1', ) self.navigation_model = DataCenterAssetModelFactory( category=CategoryFactory(name="Navigation"), type=ObjectModelType.data_center, name='Navigation1', ) self.scanner_model = DataCenterAssetModelFactory( category=CategoryFactory(name="Scanner"), type=ObjectModelType.data_center, name='Scanner1', ) self.shredder_model = DataCenterAssetModelFactory( category=CategoryFactory(name="Shredder"), type=ObjectModelType.data_center, name='Shredder1', )
def setUp(self): super().setUp() self.category = CategoryFactory(name='rack-servers')
def test_can_generate_hostname_for_model_with_hostname(self): category = CategoryFactory(code='PC') model = BackOfficeAssetModelFactory(category=category) asset = BackOfficeAssetFactory(model=model, region=self.region_pl) self._check_hostname_is_generated(asset)
class TestBackOfficeAsset(RalphTestCase): @classmethod def setUpClass(cls): super().setUpClass() cls.region_pl = RegionFactory(name='PL', country=Country.pl) cls.region_us = RegionFactory(name='US', country=Country.us) cls.category = CategoryFactory(code='PC') cls.category_without_code = CategoryFactory() cls.model = BackOfficeAssetModelFactory(category=cls.category) cls.model_without_code = BackOfficeAssetModelFactory( category=cls.category_without_code) def setUp(self): super().setUp() AssetLastHostname.objects.create(prefix='POLPC', counter=1000) self.bo_asset = BackOfficeAssetFactory( model=self.model, hostname='abc', region=self.region_pl, ) self.bo_asset_2 = BackOfficeAssetFactory( model=self.model, hostname='abc2', region=self.region_pl, status=BackOfficeAssetStatus.liquidated.id, invoice_date=None) self.bo_asset_3 = BackOfficeAssetFactory( model=self.model, hostname='abc3', region=self.region_pl, status=BackOfficeAssetStatus.liquidated.id, invoice_date=datetime(2016, 1, 11).date(), depreciation_rate=50) self.bo_asset_4 = BackOfficeAssetFactory( model=self.model, hostname='abc3', region=self.region_pl, status=BackOfficeAssetStatus.liquidated.id, invoice_date=datetime(2016, 1, 11).date(), depreciation_end_date=datetime(2015, 1, 11).date(), depreciation_rate=50) self.category_parent = CategoryFactory(code='Mob1', default_depreciation_rate=30) self.category_2 = CategoryFactory(code='Mob2', default_depreciation_rate=25) self.category_3 = CategoryFactory(code='Mob3', parent=self.category_parent, default_depreciation_rate=0) def test_try_assign_hostname(self): self.bo_asset._try_assign_hostname(commit=True) self.assertEqual(self.bo_asset.hostname, 'POLPC01001') def test_try_assign_hostname_no_change(self): self.bo_asset.hostname = 'POLPC01001' self.bo_asset.save() self.bo_asset._try_assign_hostname(commit=True) self.assertEqual(self.bo_asset.hostname, 'POLPC01001') def test_try_assign_hostname_no_hostname(self): self.bo_asset.hostname = '' self.bo_asset.save() self.bo_asset._try_assign_hostname(commit=True) self.assertEqual(self.bo_asset.hostname, 'POLPC01001') def test_try_assign_hostname_forced(self): self.bo_asset.hostname = 'POLPC001010' self.bo_asset.save() self.bo_asset._try_assign_hostname(commit=True, force=True) self.assertEqual(self.bo_asset.hostname, 'POLPC01001') def test_try_assign_hostname_with_country(self): self.bo_asset._try_assign_hostname(country='US', commit=True) self.assertEqual(self.bo_asset.hostname, 'USPC00001') def test_try_assign_hostname_category_without_code(self): bo_asset_2 = BackOfficeAssetFactory(model=self.model_without_code, hostname='abcd') bo_asset_2._try_assign_hostname(commit=True) self.assertEqual(bo_asset_2.hostname, 'abcd') def test_get_autocomplete_queryset(self): queryset = BackOfficeAsset.get_autocomplete_queryset() self.assertEquals(1, queryset.count()) def test_buyout_date(self): self.assertEqual(self.bo_asset_3.buyout_date, datetime(2018, 2, 11).date()) self.assertEqual(self.bo_asset_2.buyout_date, None) def test_butout_date_with_depreciation_end_date(self): self.assertEqual(self.bo_asset_4.buyout_date, datetime(2015, 1, 11).date()) def test_get_depreciation_rate(self): self.assertEqual(self.category_2.get_default_depreciation_rate(), 25) self.assertEqual(self.category_3.get_default_depreciation_rate(), 30)