Ejemplo n.º 1
0
    def test_endpoint_queries_no_data(self):
        user3 = User.objects.get(username='******')
        self.request.user = user3

        product_types = []
        endpoint_queries = views.endpoint_querys(product_types, self.request)

        self.assertSequenceEqual(
            endpoint_queries['all'].values(),
            [],
        )
Ejemplo n.º 2
0
    def test_endpoint_queries(self):
        # Queries over Finding and Endpoint_Status
        with self.assertNumQueries(67):
            product_types = []
            endpoint_queries = views.endpoint_querys(product_types,
                                                     self.request)

            self.assertSequenceEqual(list(endpoint_queries.keys()), [
                'all',
                'closed',
                'accepted',
                'accepted_count',
                'top_ten',
                'monthly_counts',
                'weekly_counts',
                'weeks_between',
                'start_date',
                'end_date',
            ])

            # Assert that we get expected querysets back. This is to be used to
            # support refactoring, in attempt of lowering the query count.
            if settings.FEATURE_AUTHORIZATION_V2:
                self.assertSequenceEqual(
                    endpoint_queries['all'].values(),
                    [{
                        'id':
                        1,
                        'date':
                        datetime(2020, 7, 1, 0, 0, tzinfo=timezone.utc),
                        'last_modified':
                        datetime(2020,
                                 7,
                                 1,
                                 17,
                                 45,
                                 39,
                                 791907,
                                 tzinfo=timezone.utc),
                        'mitigated':
                        False,
                        'mitigated_time':
                        None,
                        'mitigated_by_id':
                        None,
                        'false_positive':
                        False,
                        'out_of_scope':
                        False,
                        'risk_accepted':
                        False,
                        'endpoint_id':
                        2,
                        'finding_id':
                        2,
                        'endpoint__product__prod_type__member':
                        False,
                        'endpoint__product__member':
                        True
                    }],
                )
            else:
                self.assertSequenceEqual(
                    endpoint_queries['all'].values(),
                    [{
                        'id':
                        1,
                        'date':
                        datetime(2020, 7, 1, 0, 0, tzinfo=timezone.utc),
                        'last_modified':
                        datetime(2020,
                                 7,
                                 1,
                                 17,
                                 45,
                                 39,
                                 791907,
                                 tzinfo=timezone.utc),
                        'mitigated':
                        False,
                        'mitigated_time':
                        None,
                        'mitigated_by_id':
                        None,
                        'false_positive':
                        False,
                        'out_of_scope':
                        False,
                        'risk_accepted':
                        False,
                        'endpoint_id':
                        2,
                        'finding_id':
                        2
                    }],
                )
            self.assertSequenceEqual(
                endpoint_queries['closed'].values(),
                [],
            )
            self.assertSequenceEqual(
                endpoint_queries['accepted'].values(),
                [],
            )
            self.assertSequenceEqual(
                list(endpoint_queries['accepted_count'].values()),
                [None, None, None, None, None, None],
            )
            self.assertSequenceEqual(
                endpoint_queries['top_ten'].values(),
                [],
            )
            self.assertSequenceEqual(
                list(endpoint_queries['monthly_counts'].values()),
                [[
                    [
                        'Timestamp', 'Date', 'S0', 'S1', 'S2', 'S3', 'Total',
                        'Closed'
                    ],
                    [
                        1590969600000,
                        datetime(2020, 6, 1, 0, 0, tzinfo=timezone.utc), 0, 0,
                        0, 0, 0, 0
                    ],
                    [
                        1593561600000,
                        datetime(2020, 7, 1, 0, 0, tzinfo=timezone.utc), 0, 1,
                        0, 0, 1, 0
                    ],
                ],
                 [[
                     'Timestamp', 'Date', 'S0', 'S1', 'S2', 'S3', 'Total',
                     'Closed'
                 ],
                  [
                      1590969600000,
                      datetime(2020, 6, 1, 0, 0, tzinfo=timezone.utc), 0, 0, 0,
                      0, 0
                  ],
                  [
                      1593561600000,
                      datetime(2020, 7, 1, 0, 0, tzinfo=timezone.utc), 0, 0, 0,
                      0, 0
                  ]],
                 [
                     [
                         'Timestamp', 'Date', 'S0', 'S1', 'S2', 'S3', 'Total',
                         'Closed'
                     ],
                     [
                         1590969600000,
                         datetime(2020, 6, 1, 0, 0, tzinfo=timezone.utc), 0, 0,
                         0, 0, 0
                     ],
                     [
                         1593561600000,
                         datetime(2020, 7, 1, 0, 0, tzinfo=timezone.utc), 0, 1,
                         0, 0, 1
                     ],
                 ]],
            )
            self.assertSequenceEqual(
                list(endpoint_queries['weekly_counts'].values()),
                [[[
                    'Timestamp', 'Date', 'S0', 'S1', 'S2', 'S3', 'Total',
                    'Closed'
                ],
                  [
                      1593388800000,
                      datetime(2020, 6, 29, 0, 0, tzinfo=timezone.utc), 0, 1,
                      0, 0, 1, 0
                  ],
                  [
                      1593993600000,
                      datetime(2020, 7, 6, 0, 0, tzinfo=timezone.utc), 0, 0, 0,
                      0, 0, 0
                  ],
                  [
                      1594598400000,
                      datetime(2020, 7, 13, 0, 0, tzinfo=timezone.utc), 0, 0,
                      0, 0, 0, 0
                  ]],
                 [[
                     'Timestamp', 'Date', 'S0', 'S1', 'S2', 'S3', 'Total',
                     'Closed'
                 ],
                  [
                      1593388800000,
                      datetime(2020, 6, 29, 0, 0, tzinfo=timezone.utc), 0, 0,
                      0, 0, 0
                  ],
                  [
                      1593993600000,
                      datetime(2020, 7, 6, 0, 0, tzinfo=timezone.utc), 0, 0, 0,
                      0, 0
                  ],
                  [
                      1594598400000,
                      datetime(2020, 7, 13, 0, 0, tzinfo=timezone.utc), 0, 0,
                      0, 0, 0
                  ]],
                 [[
                     'Timestamp', 'Date', 'S0', 'S1', 'S2', 'S3', 'Total',
                     'Closed'
                 ],
                  [
                      1593388800000,
                      datetime(2020, 6, 29, 0, 0, tzinfo=timezone.utc), 0, 1,
                      0, 0, 1
                  ],
                  [
                      1593993600000,
                      datetime(2020, 7, 6, 0, 0, tzinfo=timezone.utc), 0, 1, 0,
                      0, 1
                  ],
                  [
                      1594598400000,
                      datetime(2020, 7, 13, 0, 0, tzinfo=timezone.utc), 0, 1,
                      0, 0, 1
                  ]]],
            )
            self.assertEqual(endpoint_queries['weeks_between'], 2)
            self.assertEqual(endpoint_queries['start_date'],
                             datetime(2020, 7, 1, 0, 0, tzinfo=timezone.utc))
            self.assertEqual(endpoint_queries['end_date'],
                             datetime(2020, 7, 1, 0, 0, tzinfo=timezone.utc))