summaryrefslogtreecommitdiff
path: root/tests/unittests
diff options
context:
space:
mode:
authorManuel Aguilera <manuelisimo@users.noreply.github.com>2020-10-27 07:19:51 -0700
committerGitHub <noreply@github.com>2020-10-27 10:19:51 -0400
commitb8bd08194192035a13083539b31cbcaebfe4c577 (patch)
tree3ed53e101dcf18f656c9a05855f597770653b9d7 /tests/unittests
parent404f0a4a6542cdc721901d149ac981a81199aa79 (diff)
downloadvyos-cloud-init-b8bd08194192035a13083539b31cbcaebfe4c577.tar.gz
vyos-cloud-init-b8bd08194192035a13083539b31cbcaebfe4c577.zip
gentoo: fix hostname rendering when value has a comment (#611)
Gentoo's hostname file format instead of being just the host name is hostname=thename". The old code works fine when the file has no comments but if there is a comment the line ``` gentoo_hostname_config = 'hostname="%s"' % conf ``` can render an invalid hostname file that looks similar to ``` hostname="#This is the host namehello" ``` The fix inserts the hostname in a gentoo friendly way so that it gets handled by HostnameConf as a whole and comments are handled and preserved
Diffstat (limited to 'tests/unittests')
-rw-r--r--tests/unittests/test_distros/test_gentoo.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/unittests/test_distros/test_gentoo.py b/tests/unittests/test_distros/test_gentoo.py
new file mode 100644
index 00000000..37a4f51f
--- /dev/null
+++ b/tests/unittests/test_distros/test_gentoo.py
@@ -0,0 +1,26 @@
+# This file is part of cloud-init. See LICENSE file for license information.
+
+from cloudinit import util
+from cloudinit import atomic_helper
+from cloudinit.tests.helpers import CiTestCase
+from . import _get_distro
+
+
+class TestGentoo(CiTestCase):
+
+ def test_write_hostname(self):
+ distro = _get_distro("gentoo")
+ hostname = "myhostname"
+ hostfile = self.tmp_path("hostfile")
+ distro._write_hostname(hostname, hostfile)
+ self.assertEqual('hostname="myhostname"\n', util.load_file(hostfile))
+
+ def test_write_existing_hostname_with_comments(self):
+ distro = _get_distro("gentoo")
+ hostname = "myhostname"
+ contents = '#This is the hostname\nhostname="localhost"'
+ hostfile = self.tmp_path("hostfile")
+ atomic_helper.write_file(hostfile, contents, omode="w")
+ distro._write_hostname(hostname, hostfile)
+ self.assertEqual('#This is the hostname\nhostname="myhostname"\n',
+ util.load_file(hostfile))