65 lines
2.1 KiB
Python
65 lines
2.1 KiB
Python
"""Tests of the built-in user data handlers."""
|
|
|
|
import os
|
|
|
|
from tests.unittests import helpers as test_helpers
|
|
|
|
from cloudinit import handlers
|
|
from cloudinit import helpers
|
|
from cloudinit import util
|
|
|
|
from cloudinit.handlers import upstart_job
|
|
|
|
from cloudinit.settings import (PER_ALWAYS, PER_INSTANCE)
|
|
|
|
|
|
class TestBuiltins(test_helpers.FilesystemMockingTestCase):
|
|
|
|
def test_upstart_frequency_no_out(self):
|
|
c_root = self.makeDir()
|
|
up_root = self.makeDir()
|
|
paths = helpers.Paths({
|
|
'cloud_dir': c_root,
|
|
'upstart_dir': up_root,
|
|
})
|
|
freq = PER_ALWAYS
|
|
h = upstart_job.UpstartJobPartHandler(paths)
|
|
# No files should be written out when
|
|
# the frequency is ! per-instance
|
|
h.handle_part('', handlers.CONTENT_START,
|
|
None, None, None)
|
|
h.handle_part('blah', 'text/upstart-job',
|
|
'test.conf', 'blah', freq)
|
|
h.handle_part('', handlers.CONTENT_END,
|
|
None, None, None)
|
|
self.assertEquals(0, len(os.listdir(up_root)))
|
|
|
|
def test_upstart_frequency_single(self):
|
|
# files should be written out when frequency is ! per-instance
|
|
new_root = self.makeDir()
|
|
freq = PER_INSTANCE
|
|
|
|
self.patchOS(new_root)
|
|
self.patchUtils(new_root)
|
|
paths = helpers.Paths({
|
|
'upstart_dir': "/etc/upstart",
|
|
})
|
|
|
|
upstart_job.SUITABLE_UPSTART = True
|
|
util.ensure_dir("/run")
|
|
util.ensure_dir("/etc/upstart")
|
|
|
|
mock_subp = self.mocker.replace(util.subp, passthrough=False)
|
|
mock_subp(["initctl", "reload-configuration"], capture=False)
|
|
self.mocker.replay()
|
|
|
|
h = upstart_job.UpstartJobPartHandler(paths)
|
|
h.handle_part('', handlers.CONTENT_START,
|
|
None, None, None)
|
|
h.handle_part('blah', 'text/upstart-job',
|
|
'test.conf', 'blah', freq)
|
|
h.handle_part('', handlers.CONTENT_END,
|
|
None, None, None)
|
|
|
|
self.assertEquals(1, len(os.listdir('/etc/upstart')))
|