]>
git.ipfire.org Git - thirdparty/pdns.git/blob - regression-tests.api/test_Servers.py
1 from test_helper
import ApiTestCase
, is_auth
, is_recursor
4 class Servers(ApiTestCase
):
6 def test_list_servers(self
):
7 r
= self
.session
.get(self
.url("/api/v1/servers"))
8 self
.assert_success_json(r
)
10 self
.assertEquals(len(lst
), 1) # only localhost allowed in there
12 for k
in ('id', 'daemon_type', 'url'):
13 self
.assertIn(k
, data
)
14 self
.assertEquals(data
['id'], 'localhost')
16 def test_servers_localhost(self
):
17 r
= self
.session
.get(self
.url("/api/v1/servers/localhost"))
18 self
.assert_success_json(r
)
20 for k
in ('id', 'type', 'version', 'daemon_type', 'url', 'zones_url', 'config_url'):
21 self
.assertIn(k
, data
)
22 self
.assertEquals(data
['id'], 'localhost')
23 self
.assertEquals(data
['type'], 'Server')
24 # or 'recursor' for recursors
26 daemon_type
= 'authoritative'
28 daemon_type
= 'recursor'
30 raise RuntimeError('Unknown daemon type')
31 self
.assertEquals(data
['daemon_type'], daemon_type
)
33 def test_read_config(self
):
34 r
= self
.session
.get(self
.url("/api/v1/servers/localhost/config"))
35 self
.assert_success_json(r
)
36 data
= dict([(r
['name'], r
['value']) for r
in r
.json()])
37 self
.assertIn('daemon', data
)
39 def test_read_statistics(self
):
40 r
= self
.session
.get(self
.url("/api/v1/servers/localhost/statistics"))
41 self
.assert_success_json(r
)
43 self
.assertIn('uptime', [e
['name'] for e
in data
])
46 qtype_stats
, respsize_stats
, queries_stats
, rcode_stats
= None, None, None, None
48 if elem
['type'] == 'MapStatisticItem' and elem
['name'] == 'response-by-qtype':
49 qtype_stats
= elem
['value']
50 elif elem
['type'] == 'MapStatisticItem' and elem
['name'] == 'response-sizes':
51 respsize_stats
= elem
['value']
52 elif elem
['type'] == 'RingStatisticItem' and elem
['name'] == 'queries':
53 queries_stats
= elem
['value']
54 elif elem
['type'] == 'MapStatisticItem' and elem
['name'] == 'response-by-rcode':
55 rcode_stats
= elem
['value']
56 self
.assertIn('A', [e
['name'] for e
in qtype_stats
])
57 self
.assertIn('60', [e
['name'] for e
in respsize_stats
])
58 self
.assertIn('example.com/A', [e
['name'] for e
in queries_stats
])
59 self
.assertIn('No Error', [e
['name'] for e
in rcode_stats
])