def setUp(self): super().setUp() self.user1 = factories.UserFactory() self.user2 = factories.UserFactory() self.service_env = ServiceEnvironmentFactory() self.model = BackOfficeAssetModelFactory() self.warehouse = WarehouseFactory() self.warehouse.stocktaking_enabled = True self.warehouse.save() self.asset = BackOfficeAssetFactory( warehouse=self.warehouse, model=self.model, ) self.asset.user = self.user1 self.asset.save() self.base_tag = settings.INVENTORY_TAG if self.asset.warehouse.stocktaking_tag_suffix != '': self.base_tag = '{prefix}-{warehouse}'.format( prefix=self.base_tag, warehouse=self.asset.warehouse.stocktaking_tag_suffix, ) self.date_tag = None if settings.INVENTORY_TAG_APPEND_DATE: self.date_tag = '{base}_{date}'.format( base=self.base_tag, date=date.today().isoformat(), ) self.tags = [ self.base_tag, settings.INVENTORY_TAG_USER, self.date_tag, ]
class StockTakingTests(TestCase, ClientMixin): def setUp(self): super().setUp() self.user1 = factories.UserFactory() self.user2 = factories.UserFactory() self.service_env = ServiceEnvironmentFactory() self.model = BackOfficeAssetModelFactory() self.warehouse = WarehouseFactory() self.warehouse.stocktaking_enabled = True self.warehouse.save() self.asset = BackOfficeAssetFactory( warehouse=self.warehouse, model=self.model, ) self.asset.user = self.user1 self.asset.save() self.base_tag = settings.INVENTORY_TAG if self.asset.warehouse.stocktaking_tag_suffix != '': self.base_tag = '{prefix}-{warehouse}'.format( prefix=self.base_tag, warehouse=self.asset.warehouse.stocktaking_tag_suffix, ) self.date_tag = None if settings.INVENTORY_TAG_APPEND_DATE: self.date_tag = '{base}_{date}'.format( base=self.base_tag, date=date.today().isoformat(), ) self.tags = [ self.base_tag, settings.INVENTORY_TAG_USER, self.date_tag, ] def test_tag_asset(self): self.assertTrue(self.login_as_user(self.user1)) response = self.client.post(reverse('inventory_tag'), { 'asset_id': self.asset.id, 'confirm_button': 'Yes', 'answer': 'yes' }, follow=True) self.assertEquals(response.status_code, 200) for t in self.tags: self.assertIn(t, self.asset.tags.names()) def test_ownership_verification(self): self.assertTrue(self.login_as_user(self.user2)) response = self.client.post(reverse('inventory_tag'), { 'asset_id': self.asset.id, 'confirm_button': 'Yes', 'answer': 'yes' }, follow=True) self.assertEquals(response.status_code, 403)
def setUp(self): super().setUp() self.warehouse_1 = WarehouseFactory(name='api_test') self.user = UserFactory() self.officeinfrastructure = OfficeInfrastructureFactory() self.bo = BackOfficeAssetFactory(status=BackOfficeAssetStatus.new, user=UserFactory(), owner=UserFactory()) self.licence_1 = LicenceFactory() self.licence_2 = LicenceFactory() actions = [ 'assign_user', 'assign_licence', 'assign_owner', 'assign_loan_end_date', 'assign_warehouse', 'assign_office_infrastructure', 'add_remarks', 'assign_task_url', 'change_hostname' ] self.transition_1 = self._create_transition( BackOfficeAsset, 'BackOffice', actions, 'status', [BackOfficeAssetStatus.new.id], BackOfficeAssetStatus.in_progress.id)[1] self.transition_2 = self._create_transition( BackOfficeAsset, 'BackOffice_Async', actions, 'status', [BackOfficeAssetStatus.new.id], BackOfficeAssetStatus.in_progress.id, run_asynchronously=True)[1] self.superuser = get_user_model().objects.create_superuser( 'test', '*****@*****.**', 'test') self.api_client = APIClient() self.api_client.login(username='******', password='******') self.client = Client() self.client.login(username='******', password='******')
def test_create_incorrect_data(self): carrier = CellularCarrierFactory() warehouse = WarehouseFactory() user = UserFactory() owner = UserFactory() sim_card_data = { 'status': BackOfficeAssetStatus.new, 'pin1': '12343777448484', 'pin2': '568fg458', 'puk1': '123456789123456', 'puk2': '567hdj8', 'card_number': '1938462hdhd98', 'phone_number': '481234568911', 'warehouse': warehouse.pk, 'user': user.pk, 'owner': owner.pk, 'carrier': carrier.pk, } url = reverse('admin:sim_cards_simcard_add') response = self.client.post(url, sim_card_data, follow=True) self.assertIn('errors', response.context_data) self.assertEqual(6, len(response.context_data['errors']))
def test_convert_to_backoffice_asset_uses_default_from_transition(self): target_status_id = BackOfficeAssetStatus.from_name( "new" # status name common for dc_asset and bo_asset ).id dc_asset = DataCenterAssetFactory( status=DataCenterAssetStatus.from_name('damaged')) transition = Transition.objects.create( name='transition', model=TransitionModel.get_for_field(dc_asset, 'status'), source=0, target=target_status_id, ) dc_asset_pk = dc_asset.pk target_status_name = DataCenterAssetStatus.from_id( target_status_id).name DataCenterAsset.convert_to_backoffice_asset( instances=[dc_asset], region=RegionFactory().id, warehouse=WarehouseFactory().id, request=None, transition_id=transition.pk) bo_asset = BackOfficeAsset.objects.get(pk=dc_asset_pk) bo_asset_status_name = BackOfficeAssetStatus.from_id( bo_asset.status).name self.assertEqual(target_status_name, bo_asset_status_name)
def setUp(self): super().setUp() self.service_env = ServiceEnvironmentFactory() self.model = BackOfficeAssetModelFactory() self.warehouse = WarehouseFactory() self.bo_asset = BackOfficeAssetFactory( warehouse=self.warehouse, model=self.model, ) self.bo_asset.user = self.user1 self.bo_asset.owner = self.user2 self.bo_asset.save()
def test_convert_to_backoffice_asset(self): dc_asset = DataCenterAssetFactory() dc_asset_pk = dc_asset.pk hostname = dc_asset.hostname DataCenterAsset.convert_to_backoffice_asset( instances=[dc_asset], region=RegionFactory().id, warehouse=WarehouseFactory().id, request=None ) bo_asset = BackOfficeAsset.objects.get(pk=dc_asset_pk) self.assertFalse( DataCenterAsset.objects.filter(pk=dc_asset_pk).exists() ) self.assertEqual(bo_asset.hostname, hostname)
def test_convert_to_backoffice_asset(self): dc_asset = DataCenterAssetFactory() transition = Transition.objects.create( name='transition', model=TransitionModel.get_for_field(dc_asset, 'status'), source=0, target=0, ) dc_asset_pk = dc_asset.pk hostname = dc_asset.hostname DataCenterAsset.convert_to_backoffice_asset( instances=[dc_asset], region=RegionFactory().id, warehouse=WarehouseFactory().id, request=None, transition_id=transition.pk) bo_asset = BackOfficeAsset.objects.get(pk=dc_asset_pk) self.assertFalse( DataCenterAsset.objects.filter(pk=dc_asset_pk).exists()) self.assertEqual(bo_asset.hostname, hostname)
def test_create_correct_data(self): carrier = CellularCarrierFactory() warehouse = WarehouseFactory() user = UserFactory() owner = UserFactory() features = [SIMCardFeatureFactory() for _ in range(2)] expected_features_id = sorted(f.pk for f in features) sim_card_data = { 'status': BackOfficeAssetStatus.new.id, 'pin1': '1234', 'pin2': '5678', 'puk1': '12346', 'puk2': '56786', 'card_number': '1938462528298', 'phone_number': '+4812345678911', 'warehouse': warehouse.pk, 'user': user.pk, 'owner': owner.pk, 'carrier': carrier.pk, 'features': expected_features_id } url = reverse('admin:sim_cards_simcard_add') response = self.client.post(url, sim_card_data, follow=True) self.assertNotIn('errors', response.context_data) sim_card_qs = SIMCard.objects.filter( card_number=sim_card_data['card_number']) self.assertTrue(sim_card_qs.exists()) created_sim_card = sim_card_qs.first() assigned_features = sorted(f.pk for f in created_sim_card.features.all()) self.assertEqual(expected_features_id, assigned_features)
def test_convert_to_backoffice_asset_uses_default_from_settings(self): target_status_id = BackOfficeAssetStatus.from_id( settings.CONVERT_TO_BACKOFFICE_ASSET_DEFAULT_STATUS_ID).id dc_asset = DataCenterAssetFactory( status=DataCenterAssetStatus.from_name('pre_liquidated')) transition = Transition.objects.create( name='transition', model=TransitionModel.get_for_field(dc_asset, 'status'), source=0, target=0, ) dc_asset_pk = dc_asset.pk target_status_name = DataCenterAssetStatus.from_id( target_status_id).name DataCenterAsset.convert_to_backoffice_asset( instances=[dc_asset], region=RegionFactory().id, warehouse=WarehouseFactory().id, request=None, transition_id=transition.pk) bo_asset = BackOfficeAsset.objects.get(pk=dc_asset_pk) bo_asset_status_name = BackOfficeAssetStatus.from_id( bo_asset.status).name self.assertEqual(target_status_name, bo_asset_status_name)