~ubuntu-branches/ubuntu/saucy/cloud-init/saucy

« back to all changes in this revision

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

  • Committer: Package Import Robot
  • Author(s): Scott Moser
  • Date: 2012-11-14 15:18:50 UTC
  • mto: (245.3.3 raring-proposed)
  • mto: This revision was merged to the branch mainline in revision 290.
  • Revision ID: package-import@ubuntu.com-20121114151850-8f1u0o17ta9dwkrt
* New upstream release.
  * landscape: install landscape-client package if not installed.
    only take action if cloud-config is present (LP: #1066115)
  * landscape: restart landscape after install or config (LP: #1070345)
  * multipart/archive: do not fail on unknown headers in multipart
    mime or cloud-archive config (LP: #1065116).
  * tools/Z99-cloud-locale-test.sh: avoid warning when user's shell is
    zsh (LP: #1073077)
  * fix stack trace when unknown user-data input had unicode (LP: #1075756)
  * split 'apt-update-upgrade' config module into 'apt-configure' and
    'package-update-upgrade-install'.  The 'package-update-upgrade-install'
    will be a cross distro module.
  * fix bug where cloud-config from user-data could not affect system_info
    settings (LP: #1076811)
  * add yum_add_repo configuration module for adding additional yum repos
  * fix public key importing with config-drive-v2 datasource (LP: #1077700)
  * handle renaming and fixing up of marker names (LP: #1075980)
    this relieves that burden from the distro/packaging.
  * group config: fix how group members weren't being translated correctly
    when the group: [member, member...] format was used (LP: #1077245)
  * work around an issue with boto > 0.6.0 that lazy loaded the return from 
    get_instance_metadata().  This resulted in failure for cloud-init to
    install ssh keys. (LP: #1068801)
  * add power_state_change config module for shutting down stystem after
    cloud-init finishes. (LP: #1064665)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from mocker import MockerTestCase
 
2
 
 
3
from cloudinit.distros.parsers import resolv_conf
 
4
 
 
5
import re
 
6
 
 
7
 
 
8
BASE_RESOLVE = '''
 
9
; generated by /sbin/dhclient-script
 
10
search blah.yahoo.com yahoo.com
 
11
nameserver 10.15.44.14
 
12
nameserver 10.15.30.92
 
13
'''
 
14
BASE_RESOLVE = BASE_RESOLVE.strip()
 
15
 
 
16
 
 
17
class TestResolvHelper(MockerTestCase):
 
18
    def test_parse_same(self):
 
19
        rp = resolv_conf.ResolvConf(BASE_RESOLVE)
 
20
        rp_r = str(rp).strip()
 
21
        self.assertEquals(BASE_RESOLVE, rp_r)
 
22
 
 
23
    def test_local_domain(self):
 
24
        rp = resolv_conf.ResolvConf(BASE_RESOLVE)
 
25
        self.assertEquals(None, rp.local_domain)
 
26
 
 
27
        rp.local_domain = "bob"
 
28
        self.assertEquals('bob', rp.local_domain)
 
29
        self.assertIn('domain bob', str(rp))
 
30
 
 
31
    def test_nameservers(self):
 
32
        rp = resolv_conf.ResolvConf(BASE_RESOLVE)
 
33
        self.assertIn('10.15.44.14', rp.nameservers)
 
34
        self.assertIn('10.15.30.92', rp.nameservers)
 
35
        rp.add_nameserver('10.2')
 
36
        self.assertIn('10.2', rp.nameservers)
 
37
        self.assertIn('nameserver 10.2', str(rp))
 
38
        self.assertNotIn('10.3', rp.nameservers)
 
39
        self.assertEquals(len(rp.nameservers), 3)
 
40
        rp.add_nameserver('10.2')
 
41
        self.assertRaises(ValueError, rp.add_nameserver, '10.3')
 
42
        self.assertNotIn('10.3', rp.nameservers)
 
43
 
 
44
    def test_search_domains(self):
 
45
        rp = resolv_conf.ResolvConf(BASE_RESOLVE)
 
46
        self.assertIn('yahoo.com', rp.search_domains)
 
47
        self.assertIn('blah.yahoo.com', rp.search_domains)
 
48
        rp.add_search_domain('bbb.y.com')
 
49
        self.assertIn('bbb.y.com', rp.search_domains)
 
50
        self.assertTrue(re.search(r'search(.*)bbb.y.com(.*)', str(rp)))
 
51
        self.assertIn('bbb.y.com', rp.search_domains)
 
52
        rp.add_search_domain('bbb.y.com')
 
53
        self.assertEquals(len(rp.search_domains), 3)
 
54
        rp.add_search_domain('bbb2.y.com')
 
55
        self.assertEquals(len(rp.search_domains), 4)
 
56
        rp.add_search_domain('bbb3.y.com')
 
57
        self.assertEquals(len(rp.search_domains), 5)
 
58
        rp.add_search_domain('bbb4.y.com')
 
59
        self.assertEquals(len(rp.search_domains), 6)
 
60
        self.assertRaises(ValueError, rp.add_search_domain, 'bbb5.y.com')
 
61
        self.assertEquals(len(rp.search_domains), 6)