please re-review. i think i've addressed all comments.
Diff comments: > diff --git a/tests/unittests/test_distros/test_debian.py > b/tests/unittests/test_distros/test_debian.py > new file mode 100644 > index 0000000..bd7721c > --- /dev/null > +++ b/tests/unittests/test_distros/test_debian.py > @@ -0,0 +1,70 @@ > +# This file is part of cloud-init. See LICENSE file for license information. > + > +from ..helpers import (CiTestCase, mock) > + > +from cloudinit.distros.debian import apply_locale > +from cloudinit import util > + > + > +class TestDebianApplyLocale(CiTestCase): > + @mock.patch("cloudinit.distros.debian.util.subp") > + def test_no_rerun(self, m_subp): to be clear, i'd like to avoid adding such a test here. > + """If system has defined locale, no re-run is expected.""" > + spath = self.tmp_path("default-locale") > + m_subp.return_value = (None, None) > + locale = 'en_US.UTF-8' > + util.write_file(spath, 'LANG=%s\n' % locale, omode="w") > + apply_locale(locale, sys_path=spath) > + m_subp.assert_not_called() > + > + @mock.patch("cloudinit.distros.debian.util.subp") > + def test_rerun_if_different(self, m_subp): > + """If system has different locale, locale-gen should be called.""" > + spath = self.tmp_path("default-locale") > + m_subp.return_value = (None, None) > + locale = 'en_US.UTF-8' > + util.write_file(spath, 'LANG=fr_FR.UTF-8', omode="w") > + apply_locale(locale, sys_path=spath) > + self.assertEqual( > + [['locale-gen', locale], > + ['update-locale', '--locale-file=' + spath, 'LANG=%s' % > locale]], > + [p[0][0] for p in m_subp.call_args_list]) > + > + @mock.patch("cloudinit.distros.debian.util.subp") > + def test_rerun_if_no_file(self, m_subp): > + """If system has different locale, locale-gen should be called.""" ack done. > + spath = self.tmp_path("default-locale") > + m_subp.return_value = (None, None) > + locale = 'en_US.UTF-8' > + apply_locale(locale, sys_path=spath) > + self.assertEqual( > + [['locale-gen', locale], > + ['update-locale', '--locale-file=' + spath, 'LANG=%s' % > locale]], > + [p[0][0] for p in m_subp.call_args_list]) > + > + @mock.patch("cloudinit.distros.debian.util.subp") > + def test_rerun_on_unset_system_locale(self, m_subp): > + """If system has unset locale, locale-gen should be called.""" > + m_subp.return_value = (None, None) > + spath = self.tmp_path("default-locale") > + locale = 'en_US.UTF-8' > + util.write_file(spath, 'LANG=', omode="w") > + apply_locale(locale, sys_path=spath) > + self.assertEqual( > + [['locale-gen', locale], > + ['update-locale', '--locale-file=' + spath, 'LANG=%s' % > locale]], > + [p[0][0] for p in m_subp.call_args_list]) > + > + @mock.patch("cloudinit.distros.debian.util.subp") ack. done. > + def test_rerun_on_mismatched_keys(self, m_subp): > + """If key is LC_ALL and system has only LANG, rerun is expected.""" > + m_subp.return_value = (None, None) > + spath = self.tmp_path("default-locale") > + locale = 'en_US.UTF-8' > + util.write_file(spath, 'LANG=', omode="w") > + apply_locale(locale, sys_path=spath, keyname='LC_ALL') > + self.assertEqual( > + [['locale-gen', locale], > + ['update-locale', '--locale-file=' + spath, > + 'LC_ALL=%s' % locale]], > + [p[0][0] for p in m_subp.call_args_list]) -- https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/327532 Your team cloud-init commiters is requested to review the proposed merge of ~smoser/cloud-init:feature/pregen-locale into cloud-init:master. _______________________________________________ Mailing list: https://launchpad.net/~cloud-init-dev Post to : cloud-init-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~cloud-init-dev More help : https://help.launchpad.net/ListHelp