示例#1
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'])
示例#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)