summaryrefslogtreecommitdiff
path: root/tests/utils/test_file_util.py
diff options
context:
space:
mode:
authorƁukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com>2017-03-15 10:19:34 +0100
committerusd-importer <ubuntu-server@lists.ubuntu.com>2017-03-17 13:08:24 +0000
commit83be006e288c58a46f5b76c29b6886c1f417d88c (patch)
tree91ba57e843714c232b5af5ab8dc6f3322ff7841e /tests/utils/test_file_util.py
parentd064ab0bffd429382ea4fafeb144784d403848bd (diff)
downloadvyos-walinuxagent-83be006e288c58a46f5b76c29b6886c1f417d88c.tar.gz
vyos-walinuxagent-83be006e288c58a46f5b76c29b6886c1f417d88c.zip
Import patches-unapplied version 2.2.6-0ubuntu1 to ubuntu/zesty-proposed
Imported using git-ubuntu import. Changelog parent: d064ab0bffd429382ea4fafeb144784d403848bd New changelog entries: * New upstream release (LP: #1661750). * debian/control: - Change the maintainer to Ubuntu Developers (LP: #1657528). - Add the dependency of isc-dhcp-client as our maintainer scripts assume it's installed. - Add trailing commas to dependencies, add whitespaces. * Rename ephemeral-disk-warning.sh to ephemeral-disk-warning (lintian error). * debian/docs: - Remove LICENSE.txt as it's redundant. * debian/postinst: - Stop checking for update-initramfs existence using the absolute path, use the 'command' command instead to make lintian happy. * Remove debian/patches/disable-auto-update.patch: - We now ship with auto-updates enabled (LP: #1650522). * debian/maintscript: - Add a maintscript to rename the old logrotate file on upgrade from an ancient version of walinuxagent (LP: #1673152).
Diffstat (limited to 'tests/utils/test_file_util.py')
-rw-r--r--tests/utils/test_file_util.py70
1 files changed, 65 insertions, 5 deletions
diff --git a/tests/utils/test_file_util.py b/tests/utils/test_file_util.py
index f16f409..76fb15b 100644
--- a/tests/utils/test_file_util.py
+++ b/tests/utils/test_file_util.py
@@ -15,13 +15,12 @@
# Requires Python 2.4+ and Openssl 1.0+
#
-from tests.tools import *
import uuid
-import unittest
-import os
-import sys
-from azurelinuxagent.common.future import ustr
+
import azurelinuxagent.common.utils.fileutil as fileutil
+from azurelinuxagent.common.future import ustr
+from tests.tools import *
+
class TestFileOperations(AgentTestCase):
@@ -117,5 +116,66 @@ class TestFileOperations(AgentTestCase):
self.assertEqual(set(expected_files), set(actual_files))
+ @patch('os.path.isfile')
+ def test_update_conf_file(self, _):
+ new_file = "\
+DEVICE=eth0\n\
+ONBOOT=yes\n\
+BOOTPROTO=dhcp\n\
+TYPE=Ethernet\n\
+USERCTL=no\n\
+PEERDNS=yes\n\
+IPV6INIT=no\n\
+NM_CONTROLLED=yes\n"
+
+ existing_file = "\
+DEVICE=eth0\n\
+ONBOOT=yes\n\
+BOOTPROTO=dhcp\n\
+TYPE=Ethernet\n\
+DHCP_HOSTNAME=existing\n\
+USERCTL=no\n\
+PEERDNS=yes\n\
+IPV6INIT=no\n\
+NM_CONTROLLED=yes\n"
+
+ bad_file = "\
+DEVICE=eth0\n\
+ONBOOT=yes\n\
+BOOTPROTO=dhcp\n\
+TYPE=Ethernet\n\
+USERCTL=no\n\
+PEERDNS=yes\n\
+IPV6INIT=no\n\
+NM_CONTROLLED=yes\n\
+DHCP_HOSTNAME=no_new_line"
+
+ updated_file = "\
+DEVICE=eth0\n\
+ONBOOT=yes\n\
+BOOTPROTO=dhcp\n\
+TYPE=Ethernet\n\
+USERCTL=no\n\
+PEERDNS=yes\n\
+IPV6INIT=no\n\
+NM_CONTROLLED=yes\n\
+DHCP_HOSTNAME=test\n"
+
+ path = 'path'
+ with patch.object(fileutil, 'write_file') as patch_write:
+ with patch.object(fileutil, 'read_file', return_value=new_file):
+ fileutil.update_conf_file(path, 'DHCP_HOSTNAME', 'DHCP_HOSTNAME=test')
+ patch_write.assert_called_once_with(path, updated_file)
+
+ with patch.object(fileutil, 'write_file') as patch_write:
+ with patch.object(fileutil, 'read_file', return_value=existing_file):
+ fileutil.update_conf_file(path, 'DHCP_HOSTNAME', 'DHCP_HOSTNAME=test')
+ patch_write.assert_called_once_with(path, updated_file)
+
+ with patch.object(fileutil, 'write_file') as patch_write:
+ with patch.object(fileutil, 'read_file', return_value=bad_file):
+ fileutil.update_conf_file(path, 'DHCP_HOSTNAME', 'DHCP_HOSTNAME=test')
+ patch_write.assert_called_once_with(path, updated_file)
+
if __name__ == '__main__':
unittest.main()