summaryrefslogtreecommitdiff
path: root/tests/distro/test_resourceDisk.py
diff options
context:
space:
mode:
authorƁukasz 'sil2100' Zemczak <lukasz.zemczak@ubuntu.com>2017-01-16 10:10:41 +0100
committerusd-importer <ubuntu-server@lists.ubuntu.com>2017-01-17 17:53:13 +0000
commitd064ab0bffd429382ea4fafeb144784d403848bd (patch)
tree28b0940943acfa742f484c2c0016e8f22c17124c /tests/distro/test_resourceDisk.py
parent63d399807de30a64456e672063e7c20babf7aadc (diff)
downloadvyos-walinuxagent-d064ab0bffd429382ea4fafeb144784d403848bd.tar.gz
vyos-walinuxagent-d064ab0bffd429382ea4fafeb144784d403848bd.zip
Import patches-unapplied version 2.2.2-0ubuntu1 to ubuntu/zesty-proposed
Imported using git-ubuntu import. Changelog parent: 63d399807de30a64456e672063e7c20babf7aadc New changelog entries: * New upstream release (LP: #1651128) - d/patches/fix-auto-update.patch, d/patches/lp1623570-adjust-walinuxagent-service-after-and-wants.patch: - Dropped as changes have been applied upstream - Refreshed debian/patches/disable_import_test.patch
Diffstat (limited to 'tests/distro/test_resourceDisk.py')
-rw-r--r--tests/distro/test_resourceDisk.py69
1 files changed, 68 insertions, 1 deletions
diff --git a/tests/distro/test_resourceDisk.py b/tests/distro/test_resourceDisk.py
index 198fd49..1bd79fe 100644
--- a/tests/distro/test_resourceDisk.py
+++ b/tests/distro/test_resourceDisk.py
@@ -18,8 +18,10 @@
# http://msdn.microsoft.com/en-us/library/cc227282%28PROT.10%29.aspx
# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx
-from tests.tools import *
+from azurelinuxagent.common.utils import shellutil
from azurelinuxagent.daemon.resourcedisk import get_resourcedisk_handler
+from tests.tools import *
+
class TestResourceDisk(AgentTestCase):
def test_mkfile(self):
@@ -38,5 +40,70 @@ class TestResourceDisk(AgentTestCase):
# cleanup
os.remove(test_file)
+ def test_mkfile_dd_fallback(self):
+ with patch.object(shellutil, "run") as run_patch:
+ # setup
+ run_patch.return_value = 1
+ test_file = os.path.join(self.tmp_dir, 'test_file')
+ file_size = 1024 * 128
+
+ # execute
+ if sys.version_info >= (3,3):
+ with patch("os.posix_fallocate",
+ side_effect=Exception('failure')):
+ get_resourcedisk_handler().mkfile(test_file, file_size)
+ else:
+ get_resourcedisk_handler().mkfile(test_file, file_size)
+
+ # assert
+ assert run_patch.call_count > 1
+ assert "fallocate" in run_patch.call_args_list[0][0][0]
+ assert "dd if" in run_patch.call_args_list[-1][0][0]
+
+ def test_mkfile_xfs_fs(self):
+ # setup
+ test_file = os.path.join(self.tmp_dir, 'test_file')
+ file_size = 1024 * 128
+ if os.path.exists(test_file):
+ os.remove(test_file)
+
+ # execute
+ resource_disk_handler = get_resourcedisk_handler()
+ resource_disk_handler.fs = 'xfs'
+
+ with patch.object(shellutil, "run") as run_patch:
+ resource_disk_handler.mkfile(test_file, file_size)
+
+ # assert
+ if sys.version_info >= (3,3):
+ with patch("os.posix_fallocate") as posix_fallocate:
+ assert posix_fallocate.assert_not_called()
+
+ assert run_patch.call_count == 1
+ assert "dd if" in run_patch.call_args_list[0][0][0]
+
+
+ def test_change_partition_type(self):
+ resource_handler = get_resourcedisk_handler()
+ # test when sfdisk --part-type does not exist
+ with patch.object(shellutil, "run_get_output",
+ side_effect=[[1, ''], [0, '']]) as run_patch:
+ resource_handler.change_partition_type(suppress_message=True, option_str='')
+
+ # assert
+ assert run_patch.call_count == 2
+ assert "sfdisk --part-type" in run_patch.call_args_list[0][0][0]
+ assert "sfdisk -c" in run_patch.call_args_list[1][0][0]
+
+ # test when sfdisk --part-type exists
+ with patch.object(shellutil, "run_get_output",
+ side_effect=[[0, '']]) as run_patch:
+ resource_handler.change_partition_type(suppress_message=True, option_str='')
+
+ # assert
+ assert run_patch.call_count == 1
+ assert "sfdisk --part-type" in run_patch.call_args_list[0][0][0]
+
+
if __name__ == '__main__':
unittest.main()