示例#1
0
 def test_cur_without_resourceids(self, mock_boto3_client):
     """Test that a CUR without resource IDs raises ValidationError."""
     bucket = FAKE.word()
     s3_client = Mock()
     s3_client.describe_report_definitions.return_value = {'ReportDefinitions': [
         {'ReportName': FAKE.word(),
          'TimeUnit': 'HOURLY',
          'Format': 'textORcsv',
          'Compression': 'GZIP',
          'AdditionalSchemaElements': [],
          'S3Bucket': bucket,
          'S3Prefix': FAKE.word(),
          'S3Region': 'us-east-1',
          'AdditionalArtifacts': [],
          'RefreshClosedReports': True,
          'ReportVersioning': 'CREATE_NEW_REPORT'}],
         'ResponseMetadata': {'RequestId': FAKE.uuid4(),
                              'HTTPStatusCode': 200,
                              'HTTPHeaders': {'x-amzn-requestid': FAKE.uuid4(),
                                              'content-type': 'application/x-amz-json-1.1',
                                              'content-length': '1234',
                                              'date': FAKE.date_time()},
                              'RetryAttempts': 0}}
     mock_boto3_client.return_value = s3_client
     with self.assertRaises(ValidationError):
         _check_cost_report_access(FAKE.word(),
                                   {'aws_access_key_id': FAKE.md5(),
                                    'aws_secret_access_key': FAKE.md5(),
                                    'aws_session_token': FAKE.md5()},
                                   bucket=bucket)
示例#2
0
 def test_check_cost_report_access_compression_error(
         self, mock_boto3_client):
     """Test _check_cost_report_access success."""
     test_bucket = "test-bucket"
     s3_client = Mock()
     s3_client.describe_report_definitions.return_value = {
         "ReportDefinitions": [{
             "ReportName": FAKE.word(),
             "Compression": "Parquet",
             "AdditionalSchemaElements": ["RESOURCES"],
             "S3Bucket": test_bucket,
             "S3Region": "us-east-1",
         }]
     }
     mock_boto3_client.return_value = s3_client
     with self.assertRaises(ValidationError):
         _check_cost_report_access(
             FAKE.word(),
             {
                 "aws_access_key_id": FAKE.md5(),
                 "aws_secret_access_key": FAKE.md5(),
                 "aws_session_token": FAKE.md5(),
             },
             bucket=test_bucket,
         )
示例#3
0
 def test_check_cost_report_access(self, mock_boto3_client):
     """Test _check_cost_report_access success."""
     s3_client = Mock()
     s3_client.describe_report_definitions.return_value = {'ReportDefinitions': [
         {'ReportName': FAKE.word(),
          'TimeUnit': 'HOURLY',
          'Format': 'textORcsv',
          'Compression': 'GZIP',
          'AdditionalSchemaElements': ['RESOURCES'],
          'S3Bucket': FAKE.word(),
          'S3Prefix': FAKE.word(),
          'S3Region': 'us-east-1',
          'AdditionalArtifacts': [],
          'RefreshClosedReports': True,
          'ReportVersioning': 'CREATE_NEW_REPORT'}],
         'ResponseMetadata': {'RequestId': FAKE.uuid4(),
                              'HTTPStatusCode': 200,
                              'HTTPHeaders': {'x-amzn-requestid': FAKE.uuid4(),
                                              'content-type': 'application/x-amz-json-1.1',
                                              'content-length': '1234',
                                              'date': FAKE.date_time()},
                              'RetryAttempts': 0}}
     mock_boto3_client.return_value = s3_client
     try:
         _check_cost_report_access(FAKE.word(),
                                   {'aws_access_key_id': FAKE.md5(),
                                    'aws_secret_access_key': FAKE.md5(),
                                    'aws_session_token': FAKE.md5()})
     except Exception as exc:
         self.fail(exc)
示例#4
0
 def test_check_cost_report_access_fail(self, mock_boto3_client):
     """Test _check_cost_report_access fail."""
     s3_client = Mock()
     s3_client.describe_report_definitions.side_effect = _mock_boto3_kwargs_exception
     mock_boto3_client.return_value = s3_client
     with self.assertRaises(ValidationError):
         _check_cost_report_access(FAKE.word(),
                                   {'aws_access_key_id': FAKE.md5(),
                                    'aws_secret_access_key': FAKE.md5(),
                                    'aws_session_token': FAKE.md5()},
                                   bucket='wrongbucket')
示例#5
0
 def test_cur_has_resourceids(self, mock_boto3_client):
     """Test that a CUR with resource IDs succeeds."""
     bucket = FAKE.word()
     s3_client = Mock()
     s3_client.describe_report_definitions.return_value = {
         "ReportDefinitions": [
             {
                 "ReportName": FAKE.word(),
                 "TimeUnit": "HOURLY",
                 "Format": "textORcsv",
                 "Compression": "GZIP",
                 "AdditionalSchemaElements": ["RESOURCES"],
                 "S3Bucket": bucket,
                 "S3Prefix": FAKE.word(),
                 "S3Region": "us-east-1",
                 "AdditionalArtifacts": [],
                 "RefreshClosedReports": True,
                 "ReportVersioning": "CREATE_NEW_REPORT",
             }
         ],
         "ResponseMetadata": {
             "RequestId": FAKE.uuid4(),
             "HTTPStatusCode": 200,
             "HTTPHeaders": {
                 "x-amzn-requestid": FAKE.uuid4(),
                 "content-type": "application/x-amz-json-1.1",
                 "content-length": "1234",
                 "date": FAKE.date_time(),
             },
             "RetryAttempts": 0,
         },
     }
     mock_boto3_client.return_value = s3_client
     try:
         _check_cost_report_access(
             FAKE.word(),
             {
                 "aws_access_key_id": FAKE.md5(),
                 "aws_secret_access_key": FAKE.md5(),
                 "aws_session_token": FAKE.md5(),
             },
             bucket=bucket,
         )
     except Exception as exc:
         self.fail(str(exc))