def test_push_metrics_to_cloudwatch_zero_byte_submissions():
    metadata_file_name = "tests/data/metadata_output_zero_byte.json"
    bucket_name = "bucket_name"
    data = open(metadata_file_name, 'r').read()
    metadata = json.loads(data)
    cloudwatch_client = boto3.client('cloudwatch', region_name='us-east-1')
    cloudwatch_client.put_metric_data(
        Namespace=os.environ["WAZE_ZERO_BYTE_SUBMISSIONS_COUNT_METRIC"],
        MetricData=[
            {
                'MetricName':
                'Zero Byte Submissions by State and traffic type',
                'Dimensions': [{
                    'Name': 'State',
                    'Value': metadata["State"]
                }, {
                    'Name': 'TrafficType',
                    'Value': metadata["TrafficType"]
                }],
                'Value':
                1,
                'Unit':
                'Count'
            },
        ])
    metadata_obj = HandleBucketEvent()
    metadata_obj.publish_custom_metrics_to_cloudwatch(bucket_name, metadata)
    assert True
def test_push_metrics_to_cloudwatch_waze_curated():
    metadata_file_name = "tests/data/metadata_output_curated.json"
    bucket_name = "bucket_name"
    data = open(metadata_file_name, 'r').read()
    metadata = json.loads(data)
    cloudwatch_client = boto3.client('cloudwatch', region_name='us-east-1')
    cloudwatch_client.put_metric_data(
        Namespace=os.environ["WAZE_CURATED_COUNTS_METRIC"],
        MetricData=[
            {
                'MetricName':
                'Counts by state and traffic type',
                'Dimensions': [{
                    'Name': 'State',
                    'Value': metadata["State"]
                }, {
                    'Name': 'TableName',
                    'Value': metadata["TableName"]
                }],
                'Value':
                1,
                'Unit':
                'Count'
            },
        ])
    metadata_obj = HandleBucketEvent()
    metadata_obj.publish_custom_metrics_to_cloudwatch(bucket_name, metadata)
    assert True
def test_push_metrics_to_cloudwatch_cv():
    metadata_file_name = "tests/data/metadata_output_cv.json"
    bucket_name = "bucket_name"
    data = open(metadata_file_name, 'r').read()
    metadata = json.loads(data)
    cloudwatch_client = boto3.client('cloudwatch', region_name='us-east-1')
    cloudwatch_client.put_metric_data(
        Namespace=os.environ["CV_SUBMISSIONS_COUNTS_METRIC"],
        MetricData=[
            {
                'MetricName':
                'Counts by provider and datatype',
                'Dimensions': [{
                    'Name': 'DataProvider',
                    'Value': metadata["DataProvider"]
                }, {
                    'Name': 'DataType',
                    'Value': metadata["DataType"]
                }],
                'Value':
                1,
                'Unit':
                'Count'
            },
        ])
    metadata_obj = HandleBucketEvent()
    metadata_obj.publish_custom_metrics_to_cloudwatch(bucket_name, metadata)
    assert True