|
15 | 15 |
|
16 | 16 | import unittest
|
17 | 17 |
|
18 |
| -from unittest.mock import patch |
| 18 | +from unittest.mock import patch, MagicMock |
19 | 19 |
|
20 | 20 | with patch('charmhelpers.contrib.hardening.harden.harden') as mock_dec:
|
21 | 21 | mock_dec.side_effect = (lambda *dargs, **dkwargs: lambda f:
|
22 | 22 | lambda *args, **kwargs: f(*args, **kwargs))
|
23 | 23 | import utils
|
24 | 24 |
|
25 |
| -from charmhelpers.core import unitdata |
26 |
| - |
27 | 25 |
|
28 | 26 | class CephUtilsTestCase(unittest.TestCase):
|
29 | 27 | def setUp(self):
|
@@ -89,49 +87,64 @@ def test_should_enable_discard_no(self, mock_is_sata30orless,
|
89 | 87 | self.assertEqual(ret, False)
|
90 | 88 |
|
91 | 89 | @patch('subprocess.check_output')
|
92 |
| - def test_is_sata30orless_sata31(self, mock_subprocess_check_output): |
| 90 | + @patch('charmhelpers.core.unitdata.kv') |
| 91 | + def test_is_sata30orless_sata31(self, mock_db, |
| 92 | + mock_subprocess_check_output): |
93 | 93 | extcmd_output = (b'supressed text\nSATA Version is: '
|
94 | 94 | b'SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)\n'
|
95 | 95 | b'supressed text\n\n')
|
96 | 96 | mock_subprocess_check_output.return_value = extcmd_output
|
97 |
| - db = unitdata.kv() |
| 97 | + mock_db_instance = MagicMock() |
| 98 | + mock_db.return_value = mock_db_instance |
98 | 99 | key = '/dev/sda_is_sata30orless'
|
99 |
| - if db.get(key) is None: |
| 100 | + mock_db_instance.return_value = False |
| 101 | + if mock_db_instance.get(key) is None: |
100 | 102 | ret = utils.is_sata30orless('/dev/sda')
|
101 | 103 | mock_subprocess_check_output.assert_called()
|
102 | 104 | self.assertEqual(ret, False)
|
| 105 | + mock_db_instance.set.assert_called_with(key, False) |
103 | 106 | else:
|
104 | 107 | ret = utils.is_sata30orless('/dev/sda')
|
105 | 108 | mock_subprocess_check_output.assert_not_called()
|
106 | 109 |
|
107 | 110 | @patch('subprocess.check_output')
|
108 |
| - def test_is_sata30orless_sata30(self, mock_subprocess_check_output): |
| 111 | + @patch('charmhelpers.core.unitdata.kv') |
| 112 | + def test_is_sata30orless_sata30(self, mock_db, |
| 113 | + mock_subprocess_check_output): |
109 | 114 | extcmd_output = (b'supressed text\nSATA Version is: '
|
110 | 115 | b'SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)\n'
|
111 | 116 | b'supressed text\n\n')
|
112 | 117 | mock_subprocess_check_output.return_value = extcmd_output
|
113 |
| - db = unitdata.kv() |
| 118 | + mock_db_instance = MagicMock() |
| 119 | + mock_db.return_value = mock_db_instance |
114 | 120 | key = '/dev/sda_is_sata30orless'
|
115 |
| - if db.get(key) is None: |
| 121 | + mock_db_instance.get.return_value = None |
| 122 | + if mock_db_instance.get(key) is None: |
116 | 123 | ret = utils.is_sata30orless('/dev/sda')
|
117 | 124 | mock_subprocess_check_output.assert_called()
|
118 | 125 | self.assertEqual(ret, True)
|
| 126 | + mock_db_instance.set.assert_called_with(key, True) |
119 | 127 | else:
|
120 | 128 | ret = utils.is_sata30orless('/dev/sda')
|
121 | 129 | mock_subprocess_check_output.assert_not_called()
|
122 | 130 |
|
123 | 131 | @patch('subprocess.check_output')
|
124 |
| - def test_is_sata30orless_sata26(self, mock_subprocess_check_output): |
| 132 | + @patch('charmhelpers.core.unitdata.kv') |
| 133 | + def test_is_sata30orless_sata26(self, mock_db, |
| 134 | + mock_subprocess_check_output): |
125 | 135 | extcmd_output = (b'supressed text\nSATA Version is: '
|
126 | 136 | b'SATA 2.6, 3.0 Gb/s (current: 3.0 Gb/s)\n'
|
127 | 137 | b'supressed text\n\n')
|
128 | 138 | mock_subprocess_check_output.return_value = extcmd_output
|
129 |
| - db = unitdata.kv() |
| 139 | + mock_db_instance = MagicMock() |
| 140 | + mock_db.return_value = mock_db_instance |
130 | 141 | key = '/dev/sda_is_sata30orless'
|
131 |
| - if db.get(key) is None: |
| 142 | + mock_db_instance.get.return_value = None |
| 143 | + if mock_db_instance.get(key) is None: |
132 | 144 | ret = utils.is_sata30orless('/dev/sda')
|
133 | 145 | mock_subprocess_check_output.assert_called()
|
134 | 146 | self.assertEqual(ret, True)
|
| 147 | + mock_db_instance.set.assert_called_with(key, True) |
135 | 148 | else:
|
136 | 149 | ret = utils.is_sata30orless('/dev/sda')
|
137 | 150 | mock_subprocess_check_output.assert_not_called()
|
|
0 commit comments