Blame tests/unittests/test_handler/test_handler_timezone.py

Packit Service a04d08
# Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
Packit Service a04d08
#
Packit Service a04d08
# Author: Juerg Haefliger <juerg.haefliger@hp.com>
Packit Service a04d08
#
Packit Service a04d08
# This file is part of cloud-init. See LICENSE file for license information.
Packit Service a04d08
Packit Service a04d08
from cloudinit.config import cc_timezone
Packit Service a04d08
Packit Service a04d08
from cloudinit import cloud
Packit Service a04d08
from cloudinit import distros
Packit Service a04d08
from cloudinit import helpers
Packit Service a04d08
from cloudinit import util
Packit Service a04d08
Packit Service a04d08
from cloudinit.sources import DataSourceNoCloud
Packit Service a04d08
Packit Service a04d08
from cloudinit.tests import helpers as t_help
Packit Service a04d08
Packit Service a04d08
from configobj import ConfigObj
Packit Service a04d08
import logging
Packit Service a04d08
import shutil
Packit Service a04d08
import tempfile
Packit Service 751c4a
from io import BytesIO
Packit Service a04d08
Packit Service a04d08
LOG = logging.getLogger(__name__)
Packit Service a04d08
Packit Service a04d08
Packit Service a04d08
class TestTimezone(t_help.FilesystemMockingTestCase):
Packit Service a04d08
    def setUp(self):
Packit Service a04d08
        super(TestTimezone, self).setUp()
Packit Service a04d08
        self.new_root = tempfile.mkdtemp()
Packit Service a04d08
        self.addCleanup(shutil.rmtree, self.new_root)
Packit Service a04d08
Packit Service a04d08
    def _get_cloud(self, distro):
Packit Service a04d08
        self.patchUtils(self.new_root)
Packit Service a04d08
        self.patchOS(self.new_root)
Packit Service a04d08
Packit Service a04d08
        paths = helpers.Paths({})
Packit Service a04d08
Packit Service a04d08
        cls = distros.fetch(distro)
Packit Service a04d08
        d = cls(distro, {}, paths)
Packit Service a04d08
        ds = DataSourceNoCloud.DataSourceNoCloud({}, d, paths)
Packit Service a04d08
        cc = cloud.Cloud(ds, paths, {}, d, None)
Packit Service a04d08
        return cc
Packit Service a04d08
Packit Service a04d08
    def test_set_timezone_sles(self):
Packit Service a04d08
Packit Service a04d08
        cfg = {
Packit Service a04d08
            'timezone': 'Tatooine/Bestine',
Packit Service a04d08
        }
Packit Service a04d08
        cc = self._get_cloud('sles')
Packit Service a04d08
Packit Service a04d08
        # Create a dummy timezone file
Packit Service a04d08
        dummy_contents = '0123456789abcdefgh'
Packit Service a04d08
        util.write_file('/usr/share/zoneinfo/%s' % cfg['timezone'],
Packit Service a04d08
                        dummy_contents)
Packit Service a04d08
Packit Service a04d08
        cc_timezone.handle('cc_timezone', cfg, cc, LOG, [])
Packit Service a04d08
Packit Service a04d08
        contents = util.load_file('/etc/sysconfig/clock', decode=False)
Packit Service a04d08
        n_cfg = ConfigObj(BytesIO(contents))
Packit Service a04d08
        self.assertEqual({'TIMEZONE': cfg['timezone']}, dict(n_cfg))
Packit Service a04d08
Packit Service a04d08
        contents = util.load_file('/etc/localtime')
Packit Service a04d08
        self.assertEqual(dummy_contents, contents.strip())
Packit Service a04d08
Packit Service a04d08
# vi: ts=4 expandtab