diff options
Diffstat (limited to 'tests/unittests/config/test_cc_locale.py')
| -rw-r--r-- | tests/unittests/config/test_cc_locale.py | 99 | 
1 files changed, 53 insertions, 46 deletions
diff --git a/tests/unittests/config/test_cc_locale.py b/tests/unittests/config/test_cc_locale.py index 6cd95a29..7190bc68 100644 --- a/tests/unittests/config/test_cc_locale.py +++ b/tests/unittests/config/test_cc_locale.py @@ -8,21 +8,19 @@ import os  import shutil  import tempfile  from io import BytesIO -from configobj import ConfigObj  from unittest import mock +from configobj import ConfigObj +  from cloudinit import util  from cloudinit.config import cc_locale  from tests.unittests import helpers as t_help -  from tests.unittests.util import get_cloud -  LOG = logging.getLogger(__name__)  class TestLocale(t_help.FilesystemMockingTestCase): -      def setUp(self):          super(TestLocale, self).setUp()          self.new_root = tempfile.mkdtemp() @@ -30,35 +28,37 @@ class TestLocale(t_help.FilesystemMockingTestCase):          self.patchUtils(self.new_root)      def test_set_locale_arch(self): -        locale = 'en_GB.UTF-8' -        locale_configfile = '/etc/invalid-locale-path' +        locale = "en_GB.UTF-8" +        locale_configfile = "/etc/invalid-locale-path"          cfg = { -            'locale': locale, -            'locale_configfile': locale_configfile, +            "locale": locale, +            "locale_configfile": locale_configfile,          } -        cc = get_cloud('arch') - -        with mock.patch('cloudinit.distros.arch.subp.subp') as m_subp: -            with mock.patch('cloudinit.distros.arch.LOG.warning') as m_LOG: -                cc_locale.handle('cc_locale', cfg, cc, LOG, []) -                m_LOG.assert_called_with('Invalid locale_configfile %s, ' -                                         'only supported value is ' -                                         '/etc/locale.conf', -                                         locale_configfile) +        cc = get_cloud("arch") + +        with mock.patch("cloudinit.distros.arch.subp.subp") as m_subp: +            with mock.patch("cloudinit.distros.arch.LOG.warning") as m_LOG: +                cc_locale.handle("cc_locale", cfg, cc, LOG, []) +                m_LOG.assert_called_with( +                    "Invalid locale_configfile %s, " +                    "only supported value is " +                    "/etc/locale.conf", +                    locale_configfile, +                )                  contents = util.load_file(cc.distro.locale_gen_fn) -                self.assertIn('%s UTF-8' % locale, contents) -                m_subp.assert_called_with(['localectl', -                                           'set-locale', -                                           locale], capture=False) +                self.assertIn("%s UTF-8" % locale, contents) +                m_subp.assert_called_with( +                    ["localectl", "set-locale", locale], capture=False +                )      def test_set_locale_sles(self):          cfg = { -            'locale': 'My.Locale', +            "locale": "My.Locale",          } -        cc = get_cloud('sles') -        cc_locale.handle('cc_locale', cfg, cc, LOG, []) +        cc = get_cloud("sles") +        cc_locale.handle("cc_locale", cfg, cc, LOG, [])          if cc.distro.uses_systemd():              locale_conf = cc.distro.systemd_locale_conf_fn          else: @@ -66,51 +66,58 @@ class TestLocale(t_help.FilesystemMockingTestCase):          contents = util.load_file(locale_conf, decode=False)          n_cfg = ConfigObj(BytesIO(contents))          if cc.distro.uses_systemd(): -            self.assertEqual({'LANG': cfg['locale']}, dict(n_cfg)) +            self.assertEqual({"LANG": cfg["locale"]}, dict(n_cfg))          else: -            self.assertEqual({'RC_LANG': cfg['locale']}, dict(n_cfg)) +            self.assertEqual({"RC_LANG": cfg["locale"]}, dict(n_cfg))      def test_set_locale_sles_default(self):          cfg = {} -        cc = get_cloud('sles') -        cc_locale.handle('cc_locale', cfg, cc, LOG, []) +        cc = get_cloud("sles") +        cc_locale.handle("cc_locale", cfg, cc, LOG, [])          if cc.distro.uses_systemd():              locale_conf = cc.distro.systemd_locale_conf_fn -            keyname = 'LANG' +            keyname = "LANG"          else:              locale_conf = cc.distro.locale_conf_fn -            keyname = 'RC_LANG' +            keyname = "RC_LANG"          contents = util.load_file(locale_conf, decode=False)          n_cfg = ConfigObj(BytesIO(contents)) -        self.assertEqual({keyname: 'en_US.UTF-8'}, dict(n_cfg)) +        self.assertEqual({keyname: "en_US.UTF-8"}, dict(n_cfg))      def test_locale_update_config_if_different_than_default(self):          """Test cc_locale writes updates conf if different than default"""          locale_conf = os.path.join(self.new_root, "etc/default/locale")          util.write_file(locale_conf, 'LANG="en_US.UTF-8"\n') -        cfg = {'locale': 'C.UTF-8'} -        cc = get_cloud('ubuntu') -        with mock.patch('cloudinit.distros.debian.subp.subp') as m_subp: -            with mock.patch('cloudinit.distros.debian.LOCALE_CONF_FN', -                            locale_conf): -                cc_locale.handle('cc_locale', cfg, cc, LOG, []) -                m_subp.assert_called_with(['update-locale', -                                           '--locale-file=%s' % locale_conf, -                                           'LANG=C.UTF-8'], capture=False) +        cfg = {"locale": "C.UTF-8"} +        cc = get_cloud("ubuntu") +        with mock.patch("cloudinit.distros.debian.subp.subp") as m_subp: +            with mock.patch( +                "cloudinit.distros.debian.LOCALE_CONF_FN", locale_conf +            ): +                cc_locale.handle("cc_locale", cfg, cc, LOG, []) +                m_subp.assert_called_with( +                    [ +                        "update-locale", +                        "--locale-file=%s" % locale_conf, +                        "LANG=C.UTF-8", +                    ], +                    capture=False, +                )      def test_locale_rhel_defaults_en_us_utf8(self):          """Test cc_locale gets en_US.UTF-8 from distro get_locale fallback"""          cfg = {} -        cc = get_cloud('rhel') -        update_sysconfig = 'cloudinit.distros.rhel_util.update_sysconfig_file' -        with mock.patch.object(cc.distro, 'uses_systemd') as m_use_sd: +        cc = get_cloud("rhel") +        update_sysconfig = "cloudinit.distros.rhel_util.update_sysconfig_file" +        with mock.patch.object(cc.distro, "uses_systemd") as m_use_sd:              m_use_sd.return_value = True              with mock.patch(update_sysconfig) as m_update_syscfg: -                cc_locale.handle('cc_locale', cfg, cc, LOG, []) -                m_update_syscfg.assert_called_with('/etc/locale.conf', -                                                   {'LANG': 'en_US.UTF-8'}) +                cc_locale.handle("cc_locale", cfg, cc, LOG, []) +                m_update_syscfg.assert_called_with( +                    "/etc/locale.conf", {"LANG": "en_US.UTF-8"} +                )  # vi: ts=4 expandtab  | 
