Merge ~raharper/curtin:fix/unittest-leak-modprobe into curtin:master

Proposed by Ryan Harper
Status: Merged
Approved by: Dan Watkins
Approved revision: f61faa49e4a5c2973cd700378bd6c77aea8c4108
Merge reported by: Server Team CI bot
Merged at revision: not available
Proposed branch: ~raharper/curtin:fix/unittest-leak-modprobe
Merge into: curtin:master
Diff against target: 101 lines (+13/-4)
1 file modified
tests/unittests/test_clear_holders.py (+13/-4)
Reviewer Review Type Date Requested Status
Dan Watkins (community) Approve
Server Team CI bot continuous-integration Approve
Review via email: mp+382717@code.launchpad.net

Commit message

Mock out zfs_supported to prevent attempting to load kernel modules

To post a comment you must log in.
Revision history for this message
Ryan Harper (raharper) wrote :

This should fix daily-ppa builds, once we fixed the first set of subp leaks, we found more.

Revision history for this message
Server Team CI bot (server-team-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Dan Watkins (oddbloke) wrote :

LGTM, thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/tests/unittests/test_clear_holders.py b/tests/unittests/test_clear_holders.py
2index 82b481a..480e706 100644
3--- a/tests/unittests/test_clear_holders.py
4+++ b/tests/unittests/test_clear_holders.py
5@@ -451,6 +451,7 @@ class TestClearHolders(CiTestCase):
6 mock_block.rescan_block_devices.assert_has_calls(
7 [mock.call(devices=[self.test_blockdev])] * 2)
8
9+ @mock.patch('curtin.block.clear_holders.zfs')
10 @mock.patch('curtin.block.clear_holders.multipath')
11 @mock.patch('curtin.block.clear_holders.is_swap_device')
12 @mock.patch('curtin.block.clear_holders.time')
13@@ -459,7 +460,7 @@ class TestClearHolders(CiTestCase):
14 def test_clear_holders_wipe_superblock_rereads_pt_oserr(self, mock_block,
15 mock_log, m_time,
16 mock_swap,
17- mock_mp):
18+ mock_mp, m_zfs):
19 """test clear_holders.wipe_superblock re-reads ptable handles oserr"""
20 mock_swap.return_value = False
21 mock_block.sysfs_to_devpath.return_value = self.test_blockdev
22@@ -467,6 +468,7 @@ class TestClearHolders(CiTestCase):
23 mock_block.get_blockdev_for_partition.return_value = (
24 self.test_blockdev, None)
25 mock_mp.multipath_supported.return_value = False
26+ m_zfs.zfs_supported.return_value = False
27 mock_block.is_zfs_member.return_value = False
28 mock_block.get_sysfs_partitions.side_effect = iter([
29 ['p1', 'p2'], # has partitions before wipe
30@@ -483,6 +485,7 @@ class TestClearHolders(CiTestCase):
31 [mock.call(devices=[self.test_blockdev])] * 2)
32 self.assertEqual(1, m_time.sleep.call_count)
33
34+ @mock.patch('curtin.block.clear_holders.zfs')
35 @mock.patch('curtin.block.clear_holders.multipath')
36 @mock.patch('curtin.block.clear_holders.is_swap_device')
37 @mock.patch('curtin.block.clear_holders.time')
38@@ -491,7 +494,7 @@ class TestClearHolders(CiTestCase):
39 def test_clear_holders_mp_enabled_not_active_wipes_dev(self, mock_block,
40 mock_log, m_time,
41 mock_swap,
42- mock_mpath):
43+ mock_mpath, m_zfs):
44 """wipe_superblock skips wiping multipath member path."""
45 mock_swap.return_value = False
46 mock_block.sysfs_to_devpath.return_value = self.test_blockdev
47@@ -500,6 +503,7 @@ class TestClearHolders(CiTestCase):
48 mock_mpath.find_mpath_id_by_path.return_value = None
49 mock_block.get_blockdev_for_partition.return_value = (
50 self.test_blockdev, 1)
51+ m_zfs.zfs_supported.return_value = False
52 mock_block.is_zfs_member.return_value = False
53 mock_block.get_sysfs_partitions.side_effect = iter([
54 ['p1', 'p2'], # has partitions before wipe
55@@ -510,6 +514,7 @@ class TestClearHolders(CiTestCase):
56 mock_block.sysfs_to_devpath.assert_called_with(self.test_syspath)
57 self.assertEqual(0, mock_block.wipe_volume.call_count)
58
59+ @mock.patch('curtin.block.clear_holders.zfs')
60 @mock.patch('curtin.block.clear_holders.multipath')
61 @mock.patch('curtin.block.clear_holders.is_swap_device')
62 @mock.patch('curtin.block.clear_holders.time')
63@@ -517,7 +522,7 @@ class TestClearHolders(CiTestCase):
64 @mock.patch('curtin.block.clear_holders.block')
65 def test_clear_holders_mp_disabled_wipes_dev(self, mock_block, mock_log,
66 m_time, mock_swap,
67- mock_mpath):
68+ mock_mpath, m_zfs):
69 """wipe_superblock wipes blockdev with multipath disabled."""
70 mock_swap.return_value = False
71 mock_block.sysfs_to_devpath.return_value = self.test_blockdev
72@@ -525,6 +530,7 @@ class TestClearHolders(CiTestCase):
73 mock_mpath.multipath_supported.return_value = False
74 mock_block.get_blockdev_for_partition.return_value = (
75 self.test_blockdev, 1)
76+ m_zfs.zfs_supported.return_value = False
77 mock_block.is_zfs_member.return_value = False
78 mock_block.get_sysfs_partitions.side_effect = iter([
79 ['p1', 'p2'], # has partitions before wipe
80@@ -536,6 +542,7 @@ class TestClearHolders(CiTestCase):
81 mock_block.wipe_volume.assert_called_with(
82 self.test_blockdev, exclusive=True, mode='superblock', strict=True)
83
84+ @mock.patch('curtin.block.clear_holders.zfs')
85 @mock.patch('curtin.block.clear_holders.get_holders')
86 @mock.patch('curtin.block.clear_holders.multipath')
87 @mock.patch('curtin.block.clear_holders.is_swap_device')
88@@ -546,10 +553,12 @@ class TestClearHolders(CiTestCase):
89 mock_log, m_time,
90 mock_swap,
91 mock_mpath,
92- m_get_holders):
93+ m_get_holders,
94+ m_zfs):
95 """wipe_superblock wipes removes mp parts first and wipes dev."""
96 mock_swap.return_value = False
97 mock_block.sysfs_to_devpath.return_value = self.test_blockdev
98+ m_zfs.zfs_supported.return_value = False
99 mock_block.is_zfs_member.return_value = False
100 mock_block.is_extended_partition.return_value = False
101 mock_block.get_blockdev_for_partition.return_value = (

Subscribers

People subscribed via source and target branches