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

« back to all changes in this revision

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

  • Committer: Scott Moser
  • Date: 2012-11-14 20:18:41 UTC
  • mfrom: (223.1.2 raring.0.7.1)
  • Revision ID: smoser@ubuntu.com-20121114201841-jankm3afu21bd9ks
* 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
1
from cloudinit import distros
 
2
from cloudinit import util
 
3
 
 
4
from tests.unittests import helpers
 
5
 
 
6
import os
4
7
 
5
8
unknown_arch_info = {
6
9
    'arches': ['default'],
27
30
gapmi = distros._get_arch_package_mirror_info  # pylint: disable=W0212
28
31
 
29
32
 
30
 
class TestGenericDistro(MockerTestCase):
 
33
class TestGenericDistro(helpers.FilesystemMockingTestCase):
31
34
 
32
35
    def return_first(self, mlist):
33
36
        if not mlist:
52
55
        # Make a temp directoy for tests to use.
53
56
        self.tmp = self.makeDir()
54
57
 
 
58
    def test_sudoers_ensure_new(self):
 
59
        cls = distros.fetch("ubuntu")
 
60
        d = cls("ubuntu", {}, None)
 
61
        self.patchOS(self.tmp)
 
62
        self.patchUtils(self.tmp)
 
63
        d.ensure_sudo_dir("/b")
 
64
        contents = util.load_file("/etc/sudoers")
 
65
        self.assertIn("includedir /b", contents)
 
66
        self.assertTrue(os.path.isdir("/b"))
 
67
 
 
68
    def test_sudoers_ensure_append(self):
 
69
        cls = distros.fetch("ubuntu")
 
70
        d = cls("ubuntu", {}, None)
 
71
        self.patchOS(self.tmp)
 
72
        self.patchUtils(self.tmp)
 
73
        util.write_file("/etc/sudoers", "josh, josh\n")
 
74
        d.ensure_sudo_dir("/b")
 
75
        contents = util.load_file("/etc/sudoers")
 
76
        self.assertIn("includedir /b", contents)
 
77
        self.assertTrue(os.path.isdir("/b"))
 
78
        self.assertIn("josh", contents)
 
79
        self.assertEquals(2, contents.count("josh"))
 
80
 
55
81
    def test_arch_package_mirror_info_unknown(self):
56
82
        """for an unknown arch, we should get back that with arch 'default'."""
57
83
        arch_mirrors = gapmi(package_mirrors, arch="unknown")