def test_metric_to_obs_item(self):
        config = configobj.ConfigObj()
        handler = ObservabilityHandler(config)

        item = handler._get_queue_item(self.METRICS[0])

        self.assertEqual(item, {
            'service': 'cpu',
            'source': 'com.example.www',
            'name': 'total.idle',
            'value': 1.4,
            'measure_time': 1234567,
        })
    def test_metric_grouping(self):
        config = configobj.ConfigObj()
        handler = ObservabilityHandler(config)

        items = [handler._get_queue_item(m) for m in self.METRICS]
        groups = handler._create_request_groups(items)

        self.assertEqual(
            set(groups.keys()),
            {('cpu', 'com.example.www2', 1234540),
             ('cpu', 'com.example.www', 1234560),
             ('cpu', 'com.example.www', 1234540)}
        )

        self.assertEqual(len(groups[('cpu', 'com.example.www2', 1234540)]), 1)
        self.assertEqual(len(groups[('cpu', 'com.example.www', 1234560)]), 2)
        self.assertEqual(len(groups[('cpu', 'com.example.www', 1234540)]), 2)