Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
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])
Ejemplo n.º 5
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"),
Ejemplo n.º 6
0
            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
Ejemplo n.º 7
0
        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():
Ejemplo n.º 8
0
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)