示例#1
0
    def setUp(self):
        config = get_collector_config('PowerDNSCollector', {
            'interval': 1,
            'bin': 'true',
            'use_sudo': False,
        })

        self.collector = PowerDNSCollector(config, None)
示例#2
0
class TestPowerDNSCollector(CollectorTestCase):
    def setUp(self):
        config = get_collector_config('PowerDNSCollector', {
            'interval': 1,
            'bin': 'true',
            'use_sudo': False,
        })

        self.collector = PowerDNSCollector(config, None)

    @patch('os.access', Mock(return_value=True))
    @patch.object(Collector, 'publish')
    def test_should_work_with_fake_data(self, publish_mock):
        with patch(
                'subprocess.Popen.communicate',
                Mock(return_value=(self.getFixture(
                    'pdns_control-2.9.22.6-1.el6-A').getvalue(), ''))):
            self.collector.collect()

        self.assertPublishedMany(publish_mock, {})

        with patch(
                'subprocess.Popen.communicate',
                Mock(return_value=(self.getFixture(
                    'pdns_control-2.9.22.6-1.el6-B').getvalue(), ''))):
            self.collector.collect()

        metrics = {
            'corrupt-packets': 1.0,
            'deferred-cache-inserts': 2.0,
            'deferred-cache-lookup': 3.0,
            'latency': 4.0,
            'packetcache-hit': 5.0,
            'packetcache-miss': 6.0,
            'packetcache-size': 7.0,
            'qsize-q': 8.0,
            'query-cache-hit': 9.0,
            'query-cache-miss': 10.0,
            'recursing-answers': 11.0,
            'recursing-questions': 12.0,
            'servfail-packets': 13.0,
            'tcp-answers': 14.0,
            'tcp-queries': 15.0,
            'timedout-packets': 16.0,
            'udp-answers': 17.0,
            'udp-queries': 18.0,
            'udp4-answers': 19.0,
            'udp4-queries': 20.0,
            'udp6-answers': 21.0,
            'udp6-queries': 22.0,
        }

        self.setDocExample(collector=self.collector.__class__.__name__,
                           metrics=metrics,
                           defaultpath=self.collector.config['path'])
        self.assertPublishedMany(publish_mock, metrics)
示例#3
0
class TestPowerDNSCollector(CollectorTestCase):
    def setUp(self):
        config = get_collector_config('PowerDNSCollector', {
            'interval': 1,
            'bin': 'true',
            'use_sudo': False,
        })

        self.collector = PowerDNSCollector(config, None)

    @patch('os.access', Mock(return_value=True))
    @patch.object(Collector, 'publish')
    def test_should_work_with_fake_data(self, publish_mock):
        with patch('subprocess.Popen.communicate', Mock(return_value=(
                self.getFixture('pdns_control-2.9.22.6-1.el6-A').getvalue(),
                ''))):
            self.collector.collect()

        self.assertPublishedMany(publish_mock, {})

        with patch('subprocess.Popen.communicate', Mock(return_value=(
                self.getFixture('pdns_control-2.9.22.6-1.el6-B').getvalue(),
                ''))):
            self.collector.collect()

        metrics = {
            'corrupt-packets': 1.0,
            'deferred-cache-inserts': 2.0,
            'deferred-cache-lookup': 3.0,
            'latency': 4.0,
            'packetcache-hit': 5.0,
            'packetcache-miss': 6.0,
            'packetcache-size': 7.0,
            'qsize-q': 8.0,
            'query-cache-hit': 9.0,
            'query-cache-miss': 10.0,
            'recursing-answers': 11.0,
            'recursing-questions': 12.0,
            'servfail-packets': 13.0,
            'tcp-answers': 14.0,
            'tcp-queries': 15.0,
            'timedout-packets': 16.0,
            'udp-answers': 17.0,
            'udp-queries': 18.0,
            'udp4-answers': 19.0,
            'udp4-queries': 20.0,
            'udp6-answers': 21.0,
            'udp6-queries': 22.0,
        }

        self.setDocExample(collector=self.collector.__class__.__name__,
                           metrics=metrics,
                           defaultpath=self.collector.config['path'])
        self.assertPublishedMany(publish_mock, metrics)