Ejemplo n.º 1
0
    def test_array_to_zone_with_data(self):
        data = """sprout 300 IN A 10.0.5.1
sprout 300 IN NAPTR 1 1 "S" "SIP+D2T" "" _sip._tcp.sprout
_sip._tcp.sprout 300 IN SRV 0 0 5054 sprout-0
sprout-0 300 IN A 10.0.5.1""".split('\n')
        zp = ZoneParser('orangebox.com')
        zp.array_to_zone(data)
        cont = zp.zone.contents
        self.assertEqual(cont['A'], [{'alias': 'sprout',
                                      'addr': '10.0.5.1',
                                      'ttl': '300'},
                                     {'alias': 'sprout-0',
                                      'addr': '10.0.5.1',
                                      'ttl': '300'}])
        self.assertEqual(cont['NAPTR'], [{'alias': 'sprout',
                                          'order': '1',
                                          'pref': '1',
                                          'params': '"SIP+D2T"',
                                          'regexp': '""',
                                          'flag': '"S"',
                                          'replace': '_sip._tcp.sprout',
                                          'ttl': '300'}])
        self.assertEqual(cont['SRV'], [{'alias': '_sip._tcp.sprout',
                                        'port': '5054',
                                        'ttl': '300',
                                        'priority': '0',
                                        'target': 'sprout-0',
                                        'weight': '0'}])
Ejemplo n.º 2
0
 def test_a_from_array(self):
     zp = ZoneParser('example.com')
     zcontents = self.ez
     zp.a_from_array(zcontents[2].split('\t'))
     self.assertEqual(zp.zone.contents['A'], [{'ttl': '604800',
                                               'addr': '10.0.3.103',
                                               'alias': '@'}])
Ejemplo n.º 3
0
 def test_array_to_zone(self, soam, nsm, am):
     zp = ZoneParser('orangebox.com')
     zp.contents = self.ez
     zp.array_to_zone()
     soam.assert_called_with(self.ez[5].split())
     nsm.assert_called_with(self.ez[6].split())
     am.assert_called_with(self.ez[7].split())
Ejemplo n.º 4
0
    def test_array_to_zone_with_data(self):
        data = """sprout 300 IN A 10.0.5.1
sprout 300 IN NAPTR 1 1 "S" "SIP+D2T" "" _sip._tcp.sprout
_sip._tcp.sprout 300 IN SRV 0 0 5054 sprout-0
sprout-0 300 IN A 10.0.5.1""".split('\n')
        zp = ZoneParser('orangebox.com')
        zp.array_to_zone(data)
        cont = zp.zone.contents
        self.assertEqual(cont['A'], [{
            'alias': 'sprout',
            'addr': '10.0.5.1',
            'ttl': '300'
        }, {
            'alias': 'sprout-0',
            'addr': '10.0.5.1',
            'ttl': '300'
        }])
        self.assertEqual(cont['NAPTR'], [{
            'alias': 'sprout',
            'order': '1',
            'pref': '1',
            'params': '"SIP+D2T"',
            'regexp': '""',
            'flag': '"S"',
            'replace': '_sip._tcp.sprout',
            'ttl': '300'
        }])
        self.assertEqual(cont['SRV'], [{
            'alias': '_sip._tcp.sprout',
            'port': '5054',
            'ttl': '300',
            'priority': '0',
            'target': 'sprout-0',
            'weight': '0'
        }])
Ejemplo n.º 5
0
 def test_array_to_zone(self, soam, nsm, am):
     zp = ZoneParser('orangebox.com')
     zp.contents = self.ez
     zp.array_to_zone()
     soam.assert_called_with(self.ez[5].split())
     nsm.assert_called_with(self.ez[6].split())
     am.assert_called_with(self.ez[7].split())
Ejemplo n.º 6
0
 def test_cname_from_array(self):
     zp = ZoneParser('example.com')
     zcontents = self.ez
     zp.cname_from_array(zcontents[3].split())
     self.assertEqual(zp.zone.contents['CNAME'], [{'ttl': '604800',
                                                   'alias': 'ns',
                                                   'addr': 'ns1.example.com.'}])
Ejemplo n.º 7
0
 def test_a_from_array(self):
     zp = ZoneParser('orangebox.com')
     zp.a_from_array(self.ez[7].split())
     self.assertEqual(zp.zone.contents['A'], [{
         'addr': '10.0.10.55',
         'alias': 'ns'
     }])
Ejemplo n.º 8
0
 def test_cname_from_array(self):
     zp = ZoneParser('orangebox.com')
     zp.cname_from_array(self.ez[8].split())
     self.assertEqual(zp.zone.contents['CNAME'], [{
         'alias': 'mail',
         'addr': 'gmail.com.'
     }])
Ejemplo n.º 9
0
 def test_ns_from_array(self):
     zp = ZoneParser('orangebox.com')
     zp.ns_from_array(['@', 'IN', 'NS', '10.0.10.55'])
     self.assertEqual(zp.zone.contents['NS'], [{
         'addr': '10.0.10.55',
         'alias': '@'
     }])
Ejemplo n.º 10
0
 def test_from_file_exception(self, mopen):
     mopen.return_value.__enter__ = lambda s: s
     mopen.return_value.__exit__ = Mock()
     mopen.return_value.readlines = Mock(side_effect=OSError('Intentional'))
     zp = ZoneParser('foo.com')
     zp.normalize_contents = Mock()
     zp.normalize_contents.return_value = self.ez
     self.assertEqual(zp.from_file(), [])
Ejemplo n.º 11
0
 def test_from_file(self, mopen):
     mopen.return_value.__enter__ = lambda s: s
     mopen.return_value.__exit__ = Mock()
     mopen.return_value.readlines.return_value = self.ez
     zp = ZoneParser('ns')
     zp.normalize_contents = Mock()
     zp.normalize_contents.return_value = self.ez
     self.assertEqual(zp.from_file(), self.ez)
Ejemplo n.º 12
0
 def test_array_to_zone(self, soam, nsm, cnm, am):
     zp = ZoneParser('example.com')
     zp.contents = self.ez
     zp.array_to_zone()
     soam.assert_called_with(self.ez[0].split())
     nsm.assert_called_with(self.ez[1].split())
     cnm.assert_called_with(self.ez[3].split())
     am.assert_called_with(self.ez[4].split())
Ejemplo n.º 13
0
 def test_a_from_array_with_ttl(self):
     zp = ZoneParser('orangebox.com')
     zp.a_from_array(['ns', '300', 'IN', 'A', '10.0.10.55'])
     self.assertEqual(zp.zone.contents['A'], [{
         'addr': '10.0.10.55',
         'alias': 'ns',
         'ttl': '300'
     }])
Ejemplo n.º 14
0
 def test_ellis_a_from_array(self):
     zp = ZoneParser('offline.cw-ngv.com')
     zp.a_from_array(u'ellis-0 300 IN A 54.73.45.41'.split(' '))
     self.assertEqual(zp.zone.contents['A'], [{
         'ttl': '300',
         'addr': '54.73.45.41',
         'alias': 'ellis-0'
     }])
Ejemplo n.º 15
0
 def test_from_file_exception(self, mopen):
     mopen.return_value.__enter__ = lambda s: s
     mopen.return_value.__exit__ = Mock()
     mopen.return_value.readlines = Mock(side_effect=OSError('Intentional'))
     zp = ZoneParser('foo.com')
     zp.normalize_contents = Mock()
     zp.normalize_contents.return_value = self.ez
     self.assertEqual(zp.from_file(), [])
Ejemplo n.º 16
0
    def test_exists_in_default_zones(self):
        seed_zone = """zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
};""" 
        zp = ZoneParser('example.com')
        self.assertEqual(zp.exists_in_default_zones(seed_zone.split('\n')), 0)
        zp = ZoneParser('nope.com')
        self.assertEqual(zp.exists_in_default_zones(seed_zone.split('\n')), -1)
Ejemplo n.º 17
0
 def test_save(self, osrm, fwm):
     zp = ZoneParser('example.com')
     zp.passes_validation = Mock()
     zp.passes_validation.return_value = True
     zp.add_to_local_zones = Mock()
     zp.save()
     osrm.assert_called_with('/etc/bind/db.example.com.proposed')
     fwm.assert_called_with('/etc/bind/db.example.com')
     zp.add_to_local_zones.assert_called_once()
Ejemplo n.º 18
0
 def test_srv_from_array(self):
     zp = ZoneParser('example.com')
     zcontents = '_sip._udp 3200 IN SRV 0 0 5060 bono-0'.split(' ')
     zp.srv_from_array(zcontents)
     self.assertEqual(zp.zone.contents['SRV'], [{'alias': '_sip._udp',
                                                 'priority': '0',
                                                 'weight': '0',
                                                 'port': '5060',
                                                 'target': 'bono-0'}])
Ejemplo n.º 19
0
 def test_normalize_contents(self, mopen, opem, spm, idm):
     mopen.return_value.__enter__ = lambda s: s
     mopen.return_value.__exit__ = Mock()
     mopen.return_value.readlines.return_value = self.ez
     idm.return_value = 'ABC123'
     opem.return_value = True
     zp = ZoneParser('example.com')
     zp.normalize_contents()
     spm.assert_called_with(['named-checkzone', '-o', '/tmp/ABC123',
                             'example.com', '/etc/bind/db.example.com'])
Ejemplo n.º 20
0
    def test_read_local_zones(self, mopen):
        seed_zone = """zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};"""
        mopen.return_value.__enter__ = lambda s: s
        mopen.return_value.__exit__ = Mock()
        mopen.return_value.readlines.return_value = seed_zone.split('\n')
        zp = ZoneParser('example.com')
        self.assertEqual(zp.read_local_zones(), seed_zone.split('\n'))
Ejemplo n.º 21
0
    def test_read_default_zones(self, mopen):
        seed_zone = """zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};"""
        mopen.return_value.__enter__ = lambda s: s
        mopen.return_value.__exit__ = Mock()
        mopen.return_value.readlines.return_value = seed_zone.split('\n')
        zp = ZoneParser('example.com')
        self.assertEqual(zp.read_default_zones(), seed_zone.split('\n'))
Ejemplo n.º 22
0
 def test_naptr_from_array(self):
     zp = ZoneParser('example.com')
     zcontents = '@ 3200 IN NAPTR 1 1 "S" "SIP+D2T" "" _sip._tcp'.split(' ')
     zp.naptr_from_array(zcontents)
     self.assertEqual(zp.zone.contents['NAPTR'], [{'alias': '@', 
                                                   'order': '1',
                                                   'pref': '1',
                                                   'flag': '"S"',
                                                   'params': '"SIP+D2T"',
                                                   'regexp': '""',
                                                   'replace': '_sip._tcp'}])
Ejemplo n.º 23
0
 def test_soa_from_array(self):
     zp = ZoneParser('orangebox.com')
     zp.soa_from_array(self.ez[5].split())
     self.assertEqual(zp.zone.contents['SOA'],
                      [{'addr': 'ns.orangebox.com.',
                        'owner': 'root.orangebox.com.',
                        'expiry': '3w',
                        'minimum': '15m',
                        'refresh': '12h',
                        'serial': '16640992',
                        'update-retry': '15m'}])
Ejemplo n.º 24
0
    def test_write_local_zones(self, mopen):
        seed_zone = """zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};"""
        mopen.return_value.__enter__ = lambda s: s
        mopen.return_value.__exit__ = Mock()
        mopen.return_value.write = Mock()
        made_config = seed_zone.split('\n').append(['hello'])
        zp = ZoneParser('example.com')
        zp.write_local_zones(made_config)
Ejemplo n.º 25
0
    def test_write_default_zones(self, mopen):
        seed_zone = """zone "255.in-addr.arpa" {
    type master;
    file "/etc/bind/db.255";
};"""
        mopen.return_value.__enter__ = lambda s: s
        mopen.return_value.__exit__ = Mock()
        mopen.return_value.write = Mock()
        made_config = seed_zone.split('\n').append(['hello'])
        zp = ZoneParser('example.com')
        zp.write_default_zones(made_config)
Ejemplo n.º 26
0
 def test_soa_from_array(self):
     zp = ZoneParser('example.com')
     zcontents = self.ez
     zp.soa_from_array(zcontents[0].split())
     self.assertEqual(zp.zone.contents['SOA'], [{'addr': 'ns.example.com.',
                                             'owner': 'root.example.com.',
                                             'expiry': '1814400',
                                             'minimum': '900',
                                             'refresh': '43200',
                                             'serial': '2003080800',
                                             'ttl': '604800',
                                             'update-retry': '900'}])
Ejemplo n.º 27
0
 def test_soa_from_array(self):
     zp = ZoneParser('orangebox.com')
     zp.soa_from_array(self.ez[5].split())
     self.assertEqual(zp.zone.contents['SOA'], [{
         'addr': 'ns.orangebox.com.',
         'owner': 'root.orangebox.com.',
         'expiry': '3w',
         'minimum': '15m',
         'refresh': '12h',
         'serial': '16640992',
         'update-retry': '15m'
     }])
Ejemplo n.º 28
0
 def test_init_loads_keys_from_zone_class(self):
     zp = ZoneParser('example.com')
     self.assertIn('CNAME', zp.implemented_records)
     self.assertIn('AAAA', zp.implemented_records)
     self.assertIn('A', zp.implemented_records)
     self.assertIn('SOA', zp.implemented_records)
     self.assertIn('NS', zp.implemented_records)
Ejemplo n.º 29
0
    def test_save(self, fwm, mopen):
        mopen.return_value.__enter__ = lambda s: s
        mopen.return_value.__exit__ = Mock()
        mopen.return_value.readlines.return_value = """
zone "localhost" {
        type master;
        file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
};""".split('\n')


        zp = ZoneParser('example.com')
        zp.save()
        fwm.assert_called_with('/etc/bind/db.example.com')
Ejemplo n.º 30
0
    def test_exists_in_local_zones(self):
        seed_zone = """zone "example.com" {
    type master;
    file "/etc/bind/db.example.com";
};"""
        zp = ZoneParser('example.com')
        self.assertEqual(zp.exists_in_local_zones(seed_zone.split('\n')), 0)
        zp = ZoneParser('nope.com')
        self.assertEqual(zp.exists_in_local_zones(seed_zone.split('\n')), -1)
Ejemplo n.º 31
0
 def test_save(self, osrm, fwm):
     zp = ZoneParser('example.com')
     zp.passes_validation = Mock()
     zp.passes_validation.return_value = True
     zp.add_to_local_zones = Mock()
     zp.save()
     osrm.assert_called_with('/etc/bind/db.example.com.proposed')
     fwm.assert_called_with('/etc/bind/db.example.com')
     zp.add_to_local_zones.assert_called_once()
Ejemplo n.º 32
0
 def test_id_generator(self):
     zp = ZoneParser('foo.com')
     self.assertTrue(len(zp.id_generator(6)) == 6)
Ejemplo n.º 33
0
 def test_cname_from_array(self):
     zp = ZoneParser('orangebox.com')
     zp.cname_from_array(self.ez[8].split())
     self.assertEqual(zp.zone.contents['CNAME'], [{'alias': 'mail',
                                                   'addr': 'gmail.com.'}])
Ejemplo n.º 34
0
 def test_a_from_array(self):
     zp = ZoneParser('orangebox.com')
     zp.a_from_array(self.ez[7].split())
     self.assertEqual(zp.zone.contents['A'], [{'addr': '10.0.10.55',
                                               'alias': 'ns'}])
Ejemplo n.º 35
0
 def test_bono_a_from_array(self):
     zp = ZoneParser('offline.cw-ngv.com')
     zp.a_from_array(u'@ 300 IN A 54.73.45.41'.split(' '))
     self.assertEqual(zp.zone.contents['A'], [{'ttl': '300',
                                               'addr': '54.73.45.41',
                                               'alias': '@'}])
Ejemplo n.º 36
0
 def test_dict_to_zone(self):
     zp = ZoneParser('example.com')
     zp.update_ns = Mock()
     zp.update_soa = Mock()
     zp.update_cname = Mock()
     zp.update_a = Mock()
     zp.dict_to_zone({'rr': 'NS'})
     zp.update_ns.assert_called_with({'rr': 'NS'})
     zp.dict_to_zone({'rr': 'SOA'})
     zp.update_soa.assert_called_with({'rr': 'SOA'})
     zp.dict_to_zone({'rr': 'CNAME'})
     zp.update_cname.assert_called_with({'rr': 'CNAME'})
     zp.dict_to_zone({'rr': 'A'})
     zp.update_a.assert_called_with({'rr': 'A'})
     zp.dict_to_zone({'rr': 'NOPE'})
Ejemplo n.º 37
0
 def test_find_type(self):
     zp = ZoneParser('example.com')
     self.assertEqual(zp.find_type(['foo', 'bar', 'baz', 'CNAME']), 3)
     self.assertEqual(zp.find_type(['foo', 'bar', 'baz']), -1)
Ejemplo n.º 38
0
 def test_find_type(self):
     zp = ZoneParser('example.com')
     self.assertEqual(zp.find_type(['foo', 'bar', 'baz', 'CNAME']), 3)
     self.assertEqual(zp.find_type(['foo', 'bar', 'baz']), -1)
Ejemplo n.º 39
0
 def test_dict_to_zone(self):
     zp = ZoneParser('example.com')
     zp.update_ns = Mock()
     zp.update_soa = Mock()
     zp.update_cname = Mock()
     zp.update_a = Mock()
     zp.dict_to_zone({'rr': 'NS'})
     zp.update_ns.assert_called_with({'rr': 'NS'})
     zp.dict_to_zone({'rr': 'SOA'})
     zp.update_soa.assert_called_with({'rr': 'SOA'})
     zp.dict_to_zone({'rr': 'CNAME'})
     zp.update_cname.assert_called_with({'rr': 'CNAME'})
     zp.dict_to_zone({'rr': 'A'})
     zp.update_a.assert_called_with({'rr': 'A'})
     zp.dict_to_zone({'rr': 'NOPE'})
Ejemplo n.º 40
0
 def test_sanity(self):
     zp = ZoneParser('foo.com')
Ejemplo n.º 41
0
 def test_ns_from_array_with_ttl(self):
     zp = ZoneParser('orangebox.com')
     zp.ns_from_array(['@', '300', 'IN', 'NS', '10.0.10.55'])
     self.assertEqual(zp.zone.contents['NS'], [{'addr': '10.0.10.55',
                                               'alias': '@',
                                               'ttl': '300'}])