summaryrefslogtreecommitdiff
path: root/tests/utils
diff options
context:
space:
mode:
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