def test_access_gb_filtered_intersection(self):
     """Test that a group by account filtered list is replaced with only the intersection of accounts."""
     guid1 = uuid4()
     guid2 = uuid4()
     guid3 = uuid4()
     fake_uri = (f'group_by[subscription_guid]={guid1}&'
                 f'group_by[subscription_guid]={guid2}&'
                 f'group_by[resource_location]=*')
     test_access = {
         'azure.subscription_guid': {
             'read': [str(guid1), str(guid3)]
         }
     }
     fake_request = Mock(spec=HttpRequest,
                         user=Mock(access=test_access,
                                   customer=Mock(schema_name='acct10001')),
                         GET=Mock(urlencode=Mock(return_value=fake_uri)))
     fake_view = Mock(spec=ReportView,
                      provider=self.FAKE.word(),
                      query_handler=Mock(provider='AZURE'),
                      report=self.FAKE.word(),
                      serializer=Mock,
                      tag_handler=[])
     params = QueryParameters(fake_request, fake_view)
     self.assertEqual(params.get_group_by('subscription_guid'),
                      [str(guid1)])
     self.assertEqual(params.get_group_by('resource_location'), '*')
Exemple #2
0
 def test_access_replace_wildcard(self):
     """Test that a group by account wildcard only has access to the proper accounts."""
     fake_uri = "group_by[account]=*&" "group_by[region]=*"
     test_access = {
         "aws.account": {
             "read": ["account1", "account2"]
         },
         "aws.organizational_unit": {
             "read": ["*"]
         }
     }
     fake_request = Mock(
         spec=HttpRequest,
         user=Mock(access=test_access,
                   customer=Mock(schema_name="acct10001")),
         GET=Mock(urlencode=Mock(return_value=fake_uri)),
     )
     fake_view = Mock(
         spec=ReportView,
         provider=self.FAKE.word(),
         query_handler=Mock(provider=Provider.PROVIDER_AWS),
         report=self.FAKE.word(),
         serializer=Mock,
         tag_handler=[],
     )
     params = QueryParameters(fake_request, fake_view)
     self.assertEqual(params.get_access("account"),
                      ["account1", "account2"])
     self.assertEqual(params.get_group_by("region"), "*")
 def test_access_replace_wildcard(self):
     """Test that a group by account wildcard is replaced with only the subset of accounts."""
     fake_uri = ('group_by[account]=*&' 'group_by[region]=*')
     test_access = {'aws.account': {'read': ['account1', 'account2']}}
     fake_request = Mock(spec=HttpRequest,
                         user=Mock(access=test_access,
                                   customer=Mock(schema_name='acct10001')),
                         GET=Mock(urlencode=Mock(return_value=fake_uri)))
     fake_view = Mock(spec=ReportView,
                      provider=self.FAKE.word(),
                      query_handler=Mock(provider='AWS'),
                      report=self.FAKE.word(),
                      serializer=Mock,
                      tag_handler=[])
     params = QueryParameters(fake_request, fake_view)
     self.assertEqual(params.get_group_by('account'),
                      ['account1', 'account2'])
     self.assertEqual(params.get_group_by('region'), '*')
 def test_access_with_wildcard(self):
     """Test wildcard doesn't update query parameters."""
     provider = random.choice(PROVIDERS)
     fake_uri = ('group_by[account]=*&' 'group_by[region]=*')
     test_access = {f'{provider}.account': {'read': ['*']}}
     fake_request = Mock(spec=HttpRequest,
                         user=Mock(access=test_access,
                                   customer=Mock(schema_name='acct10001')),
                         GET=Mock(urlencode=Mock(return_value=fake_uri)))
     fake_view = Mock(spec=ReportView,
                      provider=self.FAKE.word(),
                      query_handler=Mock(provider=provider),
                      report=self.FAKE.word(),
                      serializer=Mock,
                      tag_handler=[])
     params = QueryParameters(fake_request, fake_view)
     self.assertEqual(params.get_group_by('account'), '*')
     self.assertEqual(params.get_group_by('region'), '*')
Exemple #5
0
 def test_access_with_wildcard(self):
     """Test wildcard doesn't update query parameters."""
     provider = random.choice(PROVIDERS)
     fake_uri = "group_by[account]=*&" "group_by[region]=*"
     test_access = {f"{provider}.account": {"read": ["*"]}}
     fake_request = Mock(
         spec=HttpRequest,
         user=Mock(access=test_access, customer=Mock(schema_name="acct10001")),
         GET=Mock(urlencode=Mock(return_value=fake_uri)),
     )
     fake_view = Mock(
         spec=ReportView,
         provider=self.FAKE.word(),
         query_handler=Mock(provider=provider),
         report=self.FAKE.word(),
         serializer=Mock,
         tag_handler=[],
     )
     params = QueryParameters(fake_request, fake_view)
     self.assertEqual(params.get_group_by("account"), "*")
     self.assertEqual(params.get_group_by("region"), "*")