~cloud-init-dev/cloud-init/trunk

« back to all changes in this revision

Viewing changes to tests/unittests/test_distros/test_hostname.py

  • Committer: Scott Moser
  • Author(s): Joshua Harlow
  • Date: 2012-11-13 13:54:35 UTC
  • mfrom: (725.1.6 system-conf-goodies)
  • Revision ID: smoser@ubuntu.com-20121113135435-ot6gbl56zlutf0ym
Use a set of helper/parsing classes to perform system configuration

Previously file modification of system configuration was done
in a functional and hard to test manner. Now instead this patch
allows for a manner that provides a nice object oriented
interface to those objects as well as makes it possible to test
those parsing entities without having to invoke distro class code.
   - Created parsers for:
    - /etc/sysconfig
    - /etc/hostname
    - resolv.conf
    - /etc/hosts

Moved duplicated functionality into the root level distro class including:
 - apply_hostname
 - set_hostname
 - *various shared configuration file names/paths*

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from mocker import MockerTestCase
 
2
 
 
3
from cloudinit.distros.parsers import hostname
 
4
 
 
5
 
 
6
BASE_HOSTNAME = '''
 
7
# My super-duper-hostname
 
8
 
 
9
blahblah
 
10
 
 
11
'''
 
12
BASE_HOSTNAME = BASE_HOSTNAME.strip()
 
13
 
 
14
 
 
15
class TestHostnameHelper(MockerTestCase):
 
16
    def test_parse_same(self):
 
17
        hn = hostname.HostnameConf(BASE_HOSTNAME)
 
18
        self.assertEquals(str(hn).strip(), BASE_HOSTNAME)
 
19
        self.assertEquals(hn.hostname, 'blahblah')
 
20
 
 
21
    def test_no_adjust_hostname(self):
 
22
        hn = hostname.HostnameConf(BASE_HOSTNAME)
 
23
        prev_name = hn.hostname
 
24
        hn.set_hostname("")
 
25
        self.assertEquals(hn.hostname, prev_name)
 
26
 
 
27
    def test_adjust_hostname(self):
 
28
        hn = hostname.HostnameConf(BASE_HOSTNAME)
 
29
        prev_name = hn.hostname
 
30
        self.assertEquals(prev_name, 'blahblah')
 
31
        hn.set_hostname("bbbbd")
 
32
        self.assertEquals(hn.hostname, 'bbbbd')
 
33
        expected_out = '''
 
34
# My super-duper-hostname
 
35
 
 
36
bbbbd
 
37
'''
 
38
        self.assertEquals(str(hn).strip(), expected_out.strip())