def test_ListZones(self): r = self.session.get(self.url("/servers/localhost/zones")) self.assertSuccessJson(r) domains = r.json() example_com = [domain for domain in domains if domain['name'] in ('example.com', 'example.com.')] self.assertEquals(len(example_com), 1) example_com = example_com[0] required_fields = ['id', 'url', 'name', 'kind'] if isAuth(): required_fields = required_fields + ['masters', 'last_check', 'notified_serial', 'serial'] elif isRecursor(): required_fields = required_fields + ['recursion_desired', 'servers'] for field in required_fields: self.assertIn(field, example_com)
def test_ServersLocalhost(self): r = self.session.get(self.url("/servers/localhost")) self.assertSuccessJson(r) data = r.json() for k in ('id', 'type', 'version', 'daemon_type', 'url', 'zones_url', 'config_url'): self.assertIn(k, data) self.assertEquals(data['id'], 'localhost') self.assertEquals(data['type'], 'Server') # or 'recursor' for recursors if isAuth(): daemon_type = 'authoritative' elif isRecursor(): daemon_type = 'recursor' self.assertEquals(data['daemon_type'], daemon_type)
def test_ListZones(self): r = self.session.get(self.url("/servers/localhost/zones")) self.assertSuccessJson(r) domains = r.json() example_com = [ domain for domain in domains if domain['name'] in ('example.com', 'example.com.') ] self.assertEquals(len(example_com), 1) example_com = example_com[0] required_fields = ['id', 'url', 'name', 'kind'] if isAuth(): required_fields = required_fields + [ 'masters', 'last_check', 'notified_serial', 'serial' ] elif isRecursor(): required_fields = required_fields + [ 'recursion_desired', 'servers' ] for field in required_fields: self.assertIn(field, example_com)
import json import requests import unittest from test_helper import ApiTestCase, isRecursor @unittest.skipIf(not isRecursor(), "Only applicable to recursors") class RecursorConfig(ApiTestCase): def test_ConfigAllowFromGet(self): r = self.session.get(self.url("/servers/localhost/config/allow-from")) self.assertSuccessJson(r) def test_ConfigAllowFromReplace(self): payload = ["127.0.0.1"] r = self.session.put( self.url("/servers/localhost/config/allow-from"), data=json.dumps(payload), headers={'content-type': 'application/json'}) self.assertSuccessJson(r) data = r.json() self.assertEquals("127.0.0.1/32", data[0])
import json import requests import unittest from test_helper import ApiTestCase, unique_zone_name, isRecursor @unittest.skipIf(isRecursor(), "Not implemented yet") class Servers(ApiTestCase): def test_ListZones(self): r = self.session.get(self.url("/servers/localhost/zones")) self.assertSuccessJson(r) domains = r.json() example_com = [domain for domain in domains if domain['name'] == u'example.com'] self.assertEquals(len(example_com), 1) example_com = example_com[0] for k in ('id', 'url', 'name', 'masters', 'kind', 'last_check', 'notified_serial', 'serial'): self.assertIn(k, example_com) def create_zone(self, name=None, nameservers=None): if name is None: name = unique_zone_name() payload = { 'name': name, 'kind': 'Native', 'nameservers': ['ns1.example.com', 'ns2.example.com'] } if nameservers is not None: payload['nameservers'] = nameservers r = self.session.post( self.url("/servers/localhost/zones"),
headers={'content-type': 'application/json'}) self.assertSuccessJson(r) # make sure it's still in zone list r = self.session.get(self.url("/servers/localhost/zones")) domains = r.json() self.assertEquals(len([domain for domain in domains if domain['name'] == name]), 1) # verify that modifying it still works payload['records'][0]['disabled'] = False r = self.session.patch( self.url("/servers/localhost/zones/" + name + "/rrset"), data=json.dumps(payload), headers={'content-type': 'application/json'}) self.assertSuccessJson(r) @unittest.skipIf(not isRecursor(), "Not applicable") class RecursorZones(ApiTestCase): def test_CreateAuthZone(self): payload = { 'name': unique_zone_name(), 'kind': 'Native', 'recursion_desired': False } r = self.session.post( self.url("/servers/localhost/zones"), data=json.dumps(payload), headers={'content-type': 'application/json'}) self.assertSuccessJson(r) data = r.json() # return values are normalized
print r.json() # should return zone, SOA, ns1, ns2 self.assertEquals(len(r.json()), 4) def test_SearchRRCaseInsensitive(self): name = 'search-rr-insenszone.name' self.create_zone(name=name) r = self.session.get( self.url("/servers/localhost/search-data?q=rr-insensZONE")) self.assertSuccessJson(r) print r.json() # should return zone, SOA, ns1, ns2 self.assertEquals(len(r.json()), 4) @unittest.skipIf(not isRecursor(), "Not applicable") class RecursorZones(ApiTestCase): def test_CreateAuthZone(self): payload = { 'name': unique_zone_name(), 'kind': 'Native', 'recursion_desired': False } r = self.session.post(self.url("/servers/localhost/zones"), data=json.dumps(payload), headers={'content-type': 'application/json'}) self.assertSuccessJson(r) data = r.json() # return values are normalized payload['name'] += '.' for k in payload.keys():
import json import requests import unittest from test_helper import ApiTestCase, isRecursor @unittest.skipIf(not isRecursor(), "Only applicable to recursors") class RecursorConfig(ApiTestCase): def test_ConfigAllowFromGet(self): r = self.session.get(self.url("/servers/localhost/config/allow-from")) self.assertSuccessJson(r) def test_ConfigAllowFromReplace(self): payload = {'value': ["127.0.0.1"]} r = self.session.put( self.url("/servers/localhost/config/allow-from"), data=json.dumps(payload), headers={'content-type': 'application/json'}) self.assertSuccessJson(r) data = r.json() self.assertEquals("127.0.0.1/32", data["value"][0]) def test_ConfigAllowFromReplaceError(self): """Test the error case, should return 422.""" payload = {'value': ["abcdefgh"]} r = self.session.put( self.url("/servers/localhost/config/allow-from"), data=json.dumps(payload), headers={'content-type': 'application/json'}) self.assertEquals(r.status_code, 422)