Пример #1
0
 def test_changelist_view(self):
     DataCenterAssetFullFactory.create_batch(5)
     VirtualServerFullFactory.create_batch(5)
     CloudHostFullFactory.create_batch(4)
     ClusterFactory.create_batch(4)
     with self.assertNumQueries(19):
         result = self.client.get(
             reverse('admin:data_center_dchost_changelist'), )
     # DCAssets - 5
     # VirtualServer + hypervisors - 10
     # Cluster - 4
     # CloudHost + hypervisors - 8
     self.assertEqual(result.context_data['cl'].result_count, 27)
Пример #2
0
    def test_filtering_queryset_with_additional_filters(self):
        service_env_a = ServiceEnvironmentFactory(service__name='ServiceA')
        DataCenterAssetFullFactory.create_batch(2,
                                                service_env=service_env_a,
                                                scmstatuscheck=None)
        DataCenterAssetFullFactory.create_batch(
            3,
            service_env=service_env_a,
            scmstatuscheck__check_result=SCMCheckResult.scm_error)
        DataCenterAssetFullFactory.create_batch(4,
                                                service_env=service_env_a,
                                                scmstatuscheck__ok=True)
        DataCenterAssetFullFactory.create_batch(
            1,
            service_env__service__name='ServiceB',
        )
        DataCenterAssetFullFactory.create_batch(
            3,
            service_env__service__name='ServiceC',
        )
        ServiceEnvironmentFactory.create(service__name='ServiceD')

        graph = GraphFactory(
            aggregate_type=AggregateType.aggregate_sum_bool_negated_values.id,
            params={
                'series': 'id',
                'labels': 'service__name',
                'target': {
                    'model': 'DataCenterAsset',
                    'filter': 'service_env__service__name__in',
                    'value': 'service__name',
                    'additional_filters': {
                        'scmstatuscheck__ok': False
                    },
                }
            },
            model=ContentType.objects.get_for_model(ServiceEnvironment),
        )

        dca_qs = DataCenterAsset.objects.all()
        filtered_qs = graph.get_queryset_for_filter(
            dca_qs, {'service__name': 'ServiceA'})
        self.assertEqual(filtered_qs.count(), 3)
        self.assertEqual(
            list(
                filtered_qs.values_list('service_env__service__name',
                                        'scmstatuscheck__ok')),
            [('ServiceA', False)] * 3)
Пример #3
0
    def test_key_sort_sorts_records_descending_when_minus_present(self):
        self.data_center_assets = DataCenterAssetFullFactory.create_batch(10)
        graph = GraphFactory(
            params=self._get_graph_params({'sort': '-barcode'})
        )

        qs = graph.build_queryset()

        self.assertTrue(qs.first()['barcode'] > qs.last()['barcode'])
Пример #4
0
 def _init(self, num=10):
     self.data_center_assets = DataCenterAssetFullFactory.create_batch(num)
     self.data_center_assets_map = {}
     for i, dca in enumerate(self.data_center_assets, start=num * 2):
         dca.parent = DataCenterAssetFullFactory()
         dca.parent.management_ip = '10.20.30.{}'.format(i)
         dca.save()
         self.data_center_assets_map[dca.id] = dca
         self.data_center_assets_map[dca.parent.id] = dca.parent
Пример #5
0
    def test_key_limit_limits_records_when_present(self):
        limit = 5
        self.data_center_assets = DataCenterAssetFullFactory.create_batch(
            2 * limit
        )
        graph = GraphFactory(params=self._get_graph_params({'limit': limit}))

        qs = graph.build_queryset()

        self.assertEqual(qs.count(), limit)
Пример #6
0
    def test_filtering_queryset(self):
        DataCenterAssetFullFactory.create_batch(
            2,
            service_env__service__name='ServiceA',
        )
        DataCenterAssetFullFactory.create_batch(
            1,
            service_env__service__name='ServiceB',
        )
        DataCenterAssetFullFactory.create_batch(
            3,
            service_env__service__name='ServiceC',
        )
        ServiceEnvironmentFactory.create(service__name='ServiceD')

        graph = GraphFactory(
            aggregate_type=AggregateType.aggregate_count.id,
            params={
                'series': 'id',
                'labels': 'service_env__service__name',
            },
        )

        dca_qs = DataCenterAsset.objects.all()
        filtered_qs = graph.get_queryset_for_filter(
            dca_qs, {
                'service_env__service__name': 'ServiceA',
            })

        self.assertEqual(filtered_qs.count(), 2)
        self.assertEqual(
            list(
                filtered_qs.values_list('service_env__service__name',
                                        flat=True)), ['ServiceA', 'ServiceA'])
Пример #7
0
    def test_get_data_for_choices_field_returns_names(self):
        test_data = {
            SCMCheckResult.scm_ok: 3,
            SCMCheckResult.check_failed: 2,
            SCMCheckResult.scm_error: 1
        }

        data_center_assets = DataCenterAssetFullFactory.create_batch(
            10, scmstatuscheck=None
        )
        scm_checks = []

        dca_number = 0
        for check_result in test_data:
            for i in range(test_data[check_result]):
                scm_checks.append(
                    SCMStatusCheckFactory(
                        check_result=check_result,
                        base_object=data_center_assets[dca_number]
                    )
                )
                dca_number += 1

        graph = GraphFactory(
            params=self._get_graph_params(
                {
                    "filters": {},
                    "labels": "scmstatuscheck__check_result",
                    "series": "id",
                    "sort": "series"
                }
            )
        )

        for check_result in test_data:
            encoded_params = encode_params({
                'pk': graph.pk,
                'filters': {'scmstatuscheck__check_result': check_result.id}
            })
            graph_filter = ByGraphFilter(
                None,
                {'graph-query': encoded_params},
                DataCenterAsset,
                DataCenterAdmin
            )
            qs = graph_filter.queryset(None, DataCenterAsset.objects.all())

            self.assertEqual(len(qs), test_data[check_result])

        encoded_params = encode_params({
            'pk': graph.pk,
            'filters': {'scmstatuscheck__check_result': None}
        })
        graph_filter = ByGraphFilter(
            None,
            {'graph-query': encoded_params},
            DataCenterAsset,
            DataCenterAdmin
        )
        qs = graph_filter.queryset(None, DataCenterAsset.objects.all())

        self.assertEqual(len(qs), len(data_center_assets) - dca_number)
Пример #8
0
 def test_changelist_view(self):
     self.login_as_user()
     DataCenterAssetFullFactory.create_batch(10)
     with self.assertNumQueries(18):
         self.client.get(
             reverse('admin:data_center_datacenterasset_changelist'), )