Exemplo n.º 1
0
 def test_convert_to_data_center_asset_uses_default_from_settings(self):
     target_status_id = DataCenterAssetStatus.from_id(
         settings.CONVERT_TO_DATACENTER_ASSET_DEFAULT_STATUS_ID).id
     bo_asset = BackOfficeAssetFactory(
         status=BackOfficeAssetStatus.from_name('damaged'))
     transition = Transition.objects.create(
         name='transition',
         model=TransitionModel.get_for_field(bo_asset, 'status'),
         source=0,
         target=target_status_id,
     )
     bo_asset_pk = bo_asset.pk
     target_status_name = BackOfficeAssetStatus.from_id(
         target_status_id).name
     rack = RackFactory()
     BackOfficeAsset.convert_to_data_center_asset(
         instances=[bo_asset],
         rack=rack.id,
         service_env=ServiceEnvironmentFactory().id,
         position=1,
         model=DataCenterAssetModelFactory().id,
         request=None,
         transition_id=transition.pk,
     )
     dc_asset = DataCenterAsset.objects.get(pk=bo_asset_pk)
     dc_asset_status_name = DataCenterAssetStatus.from_id(
         dc_asset.status).name
     self.assertEqual(target_status_name, dc_asset_status_name)
Exemplo n.º 2
0
 def test_convert_to_data_center_asset(self):
     bo_asset = BackOfficeAssetFactory()
     transition = Transition.objects.create(
         name='transition',
         model=TransitionModel.get_for_field(bo_asset, 'status'),
         source=0,
         target=0,
     )
     bo_asset_pk = bo_asset.pk
     hostname = bo_asset.hostname
     rack = RackFactory()
     BackOfficeAsset.convert_to_data_center_asset(
         instances=[bo_asset],
         rack=rack.id,
         service_env=ServiceEnvironmentFactory().id,
         position=1,
         model=DataCenterAssetModelFactory().id,
         request=None,
         transition_id=transition.pk,
     )
     dc_asset = DataCenterAsset.objects.get(pk=bo_asset_pk)
     self.assertEqual(dc_asset.rack.id, rack.id)
     self.assertFalse(
         BackOfficeAsset.objects.filter(pk=bo_asset_pk).exists())
     self.assertEqual(dc_asset.hostname, hostname)
Exemplo n.º 3
0
 def test_convert_to_data_center_asset_preserves_status_name(self):
     bo_asset = BackOfficeAssetFactory(
         status=BackOfficeAssetStatus.from_name('damaged'))
     transition = Transition.objects.create(
         name='transition',
         model=TransitionModel.get_for_field(bo_asset, 'status'),
         source=0,
         target=0,
     )
     bo_asset_pk = bo_asset.pk
     bo_asset_status_name = BackOfficeAssetStatus.from_id(
         bo_asset.status).name
     rack = RackFactory()
     BackOfficeAsset.convert_to_data_center_asset(
         instances=[bo_asset],
         rack=rack.id,
         service_env=ServiceEnvironmentFactory().id,
         position=1,
         model=DataCenterAssetModelFactory().id,
         request=None,
         transition_id=transition.pk,
     )
     dc_asset = DataCenterAsset.objects.get(pk=bo_asset_pk)
     dc_asset_status_name = DataCenterAssetStatus.from_id(
         dc_asset.status).name
     self.assertEqual(bo_asset_status_name, dc_asset_status_name)
Exemplo n.º 4
0
    def test_assign_many_licences(self):
        asset = BackOfficeAssetFactory()
        licences = [LicenceFactory() for i in range(2)]
        self.assertFalse(asset.licences.all())

        BackOfficeAsset.assign_licence(
            instances=[asset], request=None, licences=licences,
        )

        self.assertCountEqual(
            [base_obj_lic.licence.id for base_obj_lic in asset.licences.all()],
            [licence.id for licence in licences],
        )
Exemplo n.º 5
0
    def convert_to_backoffice_asset(cls, instances, **kwargs):
        with transaction.atomic():
            for i, instance in enumerate(instances):
                back_office_asset = BackOfficeAsset()

                back_office_asset.region = Region.objects.get(
                    pk=kwargs['region'])
                back_office_asset.warehouse = Warehouse.objects.get(
                    pk=kwargs['warehouse'])
                target_status = int(
                    Transition.objects.values_list('target', flat=True).get(
                        pk=kwargs['transition_id'])  # noqa
                )
                back_office_asset.status = dc_asset_to_bo_asset_status_converter(  # noqa
                    instance.status, target_status)
                move_parents_models(instance,
                                    back_office_asset,
                                    exclude_copy_fields=['status'])
                # Save new asset to list, required to redirect url.
                # RunTransitionView.get_success_url()
                instances[i] = back_office_asset
Exemplo n.º 6
0
    def test_a_report_is_generated(self, mock_method):
        GENERATED_FILE_CONTENT = REPORT_TEMPLATE = b'some-content'
        mock_method.return_value = GENERATED_FILE_CONTENT
        report_template = ReportTemplateFactory(template__data=REPORT_TEMPLATE)
        user = UserFactory()
        instances = [
            BackOfficeAssetFactory(
                user=UserFactory(first_name="James", last_name="Bond")
            )
        ]
        context = BackOfficeAsset._get_report_context(instances)
        attachment = generate_report(
            report_template.name, user, instances, report_template.language,
            context=context)

        correct_filename = '{}_{}-{}_{}.pdf'.format(
            timezone.now().isoformat()[:10], 'james', 'bond',
            report_template.report.name,
        )
        self.assertEqual(attachment.original_filename, correct_filename)
        self.assertEqual(attachment.file.read(), GENERATED_FILE_CONTENT)
Exemplo n.º 7
0
 def test_get_autocomplete_queryset(self):
     queryset = BackOfficeAsset.get_autocomplete_queryset()
     self.assertEquals(1, queryset.count())
Exemplo n.º 8
0
 def release_report(cls, instances, requester, transition_id, **kwargs):
     report_name = get_report_name_for_transition_id(transition_id)
     return BackOfficeAsset._generate_report(
         instances=instances, name=report_name, requester=requester,
         language=kwargs['report_language']
     )