summaryrefslogtreecommitdiff
path: root/tests/unittests/test_distros/test_hosts.py
blob: ab867c6fd0ead99a68e5ec148b00df45c94bf65e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import unittest

from cloudinit.distros.parsers import hosts


BASE_ETC = '''
# Example
127.0.0.1	localhost
192.168.1.10	foo.mydomain.org  foo
192.168.1.10 	bar.mydomain.org  bar
146.82.138.7	master.debian.org      master
209.237.226.90	www.opensource.org
'''
BASE_ETC = BASE_ETC.strip()


class TestHostsHelper(unittest.TestCase):
    def test_parse(self):
        eh = hosts.HostsConf(BASE_ETC)
        self.assertEqual(eh.get_entry('127.0.0.1'), [['localhost']])
        self.assertEqual(eh.get_entry('192.168.1.10'),
                         [['foo.mydomain.org', 'foo'],
                          ['bar.mydomain.org', 'bar']])
        eh = str(eh)
        self.assertTrue(eh.startswith('# Example'))

    def test_add(self):
        eh = hosts.HostsConf(BASE_ETC)
        eh.add_entry('127.0.0.0', 'blah')
        self.assertEqual(eh.get_entry('127.0.0.0'), [['blah']])
        eh.add_entry('127.0.0.3', 'blah', 'blah2', 'blah3')
        self.assertEqual(eh.get_entry('127.0.0.3'),
                         [['blah', 'blah2', 'blah3']])

    def test_del(self):
        eh = hosts.HostsConf(BASE_ETC)
        eh.add_entry('127.0.0.0', 'blah')
        self.assertEqual(eh.get_entry('127.0.0.0'), [['blah']])

        eh.del_entries('127.0.0.0')
        self.assertEqual(eh.get_entry('127.0.0.0'), [])