summaryrefslogtreecommitdiff
path: root/tests/utils
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
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')
-rw-r--r--tests/utils/test_file_util.py70
-rw-r--r--tests/utils/test_passwords.txt4
-rw-r--r--tests/utils/test_text_util.py12
3 files changed, 77 insertions, 9 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()
diff --git a/tests/utils/test_passwords.txt b/tests/utils/test_passwords.txt
new file mode 100644
index 0000000..0d995ef
--- /dev/null
+++ b/tests/utils/test_passwords.txt
@@ -0,0 +1,4 @@
+김치
+करी
+hamburger
+café \ No newline at end of file
diff --git a/tests/utils/test_text_util.py b/tests/utils/test_text_util.py
index dc3de85..6f204c7 100644
--- a/tests/utils/test_text_util.py
+++ b/tests/utils/test_text_util.py
@@ -23,12 +23,16 @@ from azurelinuxagent.common.future import ustr
import azurelinuxagent.common.utils.textutil as textutil
from azurelinuxagent.common.utils.textutil import Version
+
class TestTextUtil(AgentTestCase):
def test_get_password_hash(self):
- password_hash = textutil.gen_password_hash("asdf", 6, 10)
- self.assertNotEquals(None, password_hash)
- password_hash = textutil.gen_password_hash("asdf", 6, 0)
- self.assertNotEquals(None, password_hash)
+ with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'test_passwords.txt'), 'rb') as in_file:
+ for data in in_file:
+ # Remove bom on bytes data before it is converted into string.
+ data = textutil.remove_bom(data)
+ data = ustr(data, encoding='utf-8')
+ password_hash = textutil.gen_password_hash(data, 6, 10)
+ self.assertNotEquals(None, password_hash)
def test_remove_bom(self):
#Test bom could be removed