1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# This file is part of cloud-init. See LICENSE file for license information.
import cloudinit.distros.bsd_utils as bsd_utils
from tests.unittests.helpers import CiTestCase, ExitStack, mock
RC_FILE = """
if something; then
do something here
fi
hostname={hostname}
"""
class TestBsdUtils(CiTestCase):
def setUp(self):
super().setUp()
patches = ExitStack()
self.addCleanup(patches.close)
self.load_file = patches.enter_context(
mock.patch.object(bsd_utils.util, "load_file")
)
self.write_file = patches.enter_context(
mock.patch.object(bsd_utils.util, "write_file")
)
def test_get_rc_config_value(self):
self.load_file.return_value = "hostname=foo\n"
self.assertEqual(bsd_utils.get_rc_config_value("hostname"), "foo")
self.load_file.assert_called_with("/etc/rc.conf")
self.load_file.return_value = "hostname=foo"
self.assertEqual(bsd_utils.get_rc_config_value("hostname"), "foo")
self.load_file.return_value = 'hostname="foo"'
self.assertEqual(bsd_utils.get_rc_config_value("hostname"), "foo")
self.load_file.return_value = "hostname='foo'"
self.assertEqual(bsd_utils.get_rc_config_value("hostname"), "foo")
self.load_file.return_value = "hostname='foo\""
self.assertEqual(bsd_utils.get_rc_config_value("hostname"), "'foo\"")
self.load_file.return_value = ""
self.assertEqual(bsd_utils.get_rc_config_value("hostname"), None)
self.load_file.return_value = RC_FILE.format(hostname="foo")
self.assertEqual(bsd_utils.get_rc_config_value("hostname"), "foo")
def test_set_rc_config_value_unchanged(self):
# bsd_utils.set_rc_config_value('hostname', 'foo')
# self.write_file.assert_called_with('/etc/rc.conf', 'hostname=foo\n')
self.load_file.return_value = RC_FILE.format(hostname="foo")
self.write_file.assert_not_called()
def test_set_rc_config_value(self):
bsd_utils.set_rc_config_value("hostname", "foo")
self.write_file.assert_called_with("/etc/rc.conf", "hostname=foo\n")
self.load_file.return_value = RC_FILE.format(hostname="foo")
bsd_utils.set_rc_config_value("hostname", "bar")
self.write_file.assert_called_with(
"/etc/rc.conf", RC_FILE.format(hostname="bar")
)
|