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'), '*')
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'), '*')
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"), "*")