Exemple #1
0
    def test_get_options_returns_right_option(self):
        # only have the defaults
        options = leadbutt.get_options(None, None, None)
        self.assertEqual(options['Period'], 1)
        self.assertEqual(options['Count'], 5)

        # config options were specified
        config_options = {
            'Period': 2,
        }
        options = leadbutt.get_options(config_options, None, None)
        self.assertEqual(options['Period'], 2)
        self.assertEqual(options['Count'], 5)

        # local_options were specified
        local_options = {
            'Period': 3,
        }
        options = leadbutt.get_options(config_options, local_options, None)
        self.assertEqual(options['Period'], 3)
        self.assertEqual(options['Count'], 5)

        # cli_options were specified
        cli_options = {
            'Period': 4,
            'Count': 10,
        }
        options = leadbutt.get_options(config_options, local_options, cli_options)
        self.assertEqual(options['Period'], 4)
        self.assertEqual(options['Count'], 10)
 def test_custom_formatter_used(self, mock_sysout):
     mock_results = [{
         'Timestamp': datetime.datetime.utcnow(),
         'Unit': 'Count',
         'Sum': 1337.0,
     }]
     metric = {
         'Namespace': 'AWS/Foo',
         'MetricName': 'RequestCount',
         'Statistics': 'Sum',
         'Unit': 'Count',
         'Dimensions': {
             'Krang': 'X'
         },
         'Options': {
             'Formatter': 'tmnt.%(dimension)s'
         }
     }
     options = leadbutt.get_options(None, metric.get('Options'), None)
     leadbutt.output_results(mock_results, metric, options)
     self.assertTrue(mock_sysout.write.called)
     out = mock_sysout.write.call_args[0][0]
     name, value, timestamp = out.split()
     # assert custom formatter was used
     self.assertEqual(name, 'tmnt.x')
     self.assertEqual(value, '1337.0')
Exemple #3
0
    def test_multiple_statistics_get_multiple_lines(self, mock_sysout):
        mock_results = [{
            'Timestamp': datetime.datetime.utcnow(),
            'Maximum': 9001.0,
            'Average': 1337.0,
        }]
        metric = {
            'Namespace': 'AWS/Foo',
            'MetricName': 'RequestCount',
            'Statistics': ['Maximum', 'Average'],
            'Unit': 'Count',
            'Dimensions': {'Krang': 'X'},
        }
        options = leadbutt.get_options(None, metric.get('Options'), None)
        leadbutt.output_results(mock_results, metric, options)

        self.assertEqual(
            mock_sysout.write.call_count, len(metric['Statistics']))
 def test_default_formatter_used(self, mock_sysout):
     mock_results = [{
         'Timestamp': datetime.datetime.utcnow(),
         'Sum': 1337.0,
     }]
     metric = {
         'Namespace': 'AWS/Foo',
         'MetricName': 'RequestCount',
         'Statistics': 'Sum',
         'Unit': 'Count',
         'Dimensions': {'Krang': 'X'},
     }
     options = leadbutt.get_options(None, metric.get('Options'), None)
     leadbutt.output_results(mock_results, metric, options)
     self.assertTrue(mock_sysout.write.called)
     out = mock_sysout.write.call_args[0][0]
     name, value, timestamp = out.split()
     # assert default formatter was used
     self.assertEqual(name, 'cloudwatch.aws.foo.x.requestcount.sum.count')
     self.assertEqual(value, '1337.0')