|
22 | 22 | lambda *args, **kwargs: f(*args, **kwargs))
|
23 | 23 | import utils
|
24 | 24 |
|
| 25 | +from charmhelpers.core import unitdata |
| 26 | + |
25 | 27 |
|
26 | 28 | class CephUtilsTestCase(unittest.TestCase):
|
27 | 29 | def setUp(self):
|
@@ -92,29 +94,47 @@ def test_is_sata30orless_sata31(self, mock_subprocess_check_output):
|
92 | 94 | b'SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)\n'
|
93 | 95 | b'supressed text\n\n')
|
94 | 96 | mock_subprocess_check_output.return_value = extcmd_output
|
95 |
| - ret = utils.is_sata30orless('/dev/sda') |
96 |
| - mock_subprocess_check_output.assert_called() |
97 |
| - self.assertEqual(ret, False) |
| 97 | + db = unitdata.kv() |
| 98 | + key = '/dev/sda_is_sata30orless' |
| 99 | + if db.get(key) is None: |
| 100 | + ret = utils.is_sata30orless('/dev/sda') |
| 101 | + mock_subprocess_check_output.assert_called() |
| 102 | + self.assertEqual(ret, False) |
| 103 | + else: |
| 104 | + ret = utils.is_sata30orless('/dev/sda') |
| 105 | + mock_subprocess_check_output.assert_not_called() |
98 | 106 |
|
99 | 107 | @patch('subprocess.check_output')
|
100 | 108 | def test_is_sata30orless_sata30(self, mock_subprocess_check_output):
|
101 | 109 | extcmd_output = (b'supressed text\nSATA Version is: '
|
102 | 110 | b'SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)\n'
|
103 | 111 | b'supressed text\n\n')
|
104 | 112 | mock_subprocess_check_output.return_value = extcmd_output
|
105 |
| - ret = utils.is_sata30orless('/dev/sda') |
106 |
| - mock_subprocess_check_output.assert_called() |
107 |
| - self.assertEqual(ret, True) |
| 113 | + db = unitdata.kv() |
| 114 | + key = '/dev/sda_is_sata30orless' |
| 115 | + if db.get(key) is None: |
| 116 | + ret = utils.is_sata30orless('/dev/sda') |
| 117 | + mock_subprocess_check_output.assert_called() |
| 118 | + self.assertEqual(ret, True) |
| 119 | + else: |
| 120 | + ret = utils.is_sata30orless('/dev/sda') |
| 121 | + mock_subprocess_check_output.assert_not_called() |
108 | 122 |
|
109 | 123 | @patch('subprocess.check_output')
|
110 | 124 | def test_is_sata30orless_sata26(self, mock_subprocess_check_output):
|
111 | 125 | extcmd_output = (b'supressed text\nSATA Version is: '
|
112 | 126 | b'SATA 2.6, 3.0 Gb/s (current: 3.0 Gb/s)\n'
|
113 | 127 | b'supressed text\n\n')
|
114 | 128 | mock_subprocess_check_output.return_value = extcmd_output
|
115 |
| - ret = utils.is_sata30orless('/dev/sda') |
116 |
| - mock_subprocess_check_output.assert_called() |
117 |
| - self.assertEqual(ret, True) |
| 129 | + db = unitdata.kv() |
| 130 | + key = '/dev/sda_is_sata30orless' |
| 131 | + if db.get(key) is None: |
| 132 | + ret = utils.is_sata30orless('/dev/sda') |
| 133 | + mock_subprocess_check_output.assert_called() |
| 134 | + self.assertEqual(ret, True) |
| 135 | + else: |
| 136 | + ret = utils.is_sata30orless('/dev/sda') |
| 137 | + mock_subprocess_check_output.assert_not_called() |
118 | 138 |
|
119 | 139 | @patch.object(utils, "function_get")
|
120 | 140 | def test_raise_on_missing_arguments(self, mock_function_get):
|
|
0 commit comments