~niedbalski/charms/trusty/swift-storage/backport-fix-lp1510666

« back to all changes in this revision

Viewing changes to unit_tests/test_swift_storage_utils.py

[tribaal, r=gnuoy] This is a backport of the fixes introduced in https://code.launchpad.net/~gnuoy/charms/trusty/swift-storage/lp1496004/+merge/273209 .

Note that the only difference in terms of diff is that the swift_storage_utils.py file is in the hooks folder here instead of the lib/ folder in the -next branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
75
75
   8       16  119454720 sdb1
76
76
"""
77
77
 
 
78
FINDMNT_FOUND_TEMPLATE = """
 
79
TARGET        SOURCE   FSTYPE OPTIONS
 
80
{}           /dev/{} xfs    rw,relatime,attr2,inode64,noquota
 
81
"""
 
82
 
78
83
 
79
84
class SwiftStorageUtilsTests(CharmTestCase):
80
85
 
153
158
        ex = ['/dev/vdb', '/srv/swift.img']
154
159
        self.assertEqual(ex, result)
155
160
 
 
161
    @patch.object(swift_utils, 'check_output')
156
162
    @patch.object(swift_utils, 'find_block_devices')
157
163
    @patch.object(swift_utils, 'ensure_block_device')
158
 
    def test_determine_block_device_guess_dev(self, _ensure, _find):
 
164
    def test_determine_block_device_guess_dev(self, _ensure, _find,
 
165
                                              _check_output):
 
166
        "Devices already mounted under /srv/node/ should be returned"
 
167
        def _findmnt(cmd):
 
168
            dev = cmd[1].split('/')[-1]
 
169
            mnt_point = '/srv/node/' + dev
 
170
            return FINDMNT_FOUND_TEMPLATE.format(mnt_point, dev)
 
171
        _check_output.side_effect = _findmnt
159
172
        _ensure.side_effect = self._fake_ensure
160
173
        self.test_config.set('block-device', 'guess')
161
174
        _find.return_value = ['/dev/vdb', '/dev/sdb']
163
176
        self.assertTrue(_find.called)
164
177
        self.assertEquals(result, ['/dev/vdb', '/dev/sdb'])
165
178
 
 
179
    @patch.object(swift_utils, 'check_output')
 
180
    @patch.object(swift_utils, 'find_block_devices')
 
181
    @patch.object(swift_utils, 'ensure_block_device')
 
182
    def test_determine_block_device_guess_dev_not_eligable(self, _ensure,
 
183
                                                           _find,
 
184
                                                           _check_output):
 
185
        "Devices not mounted under /srv/node/ should not be returned"
 
186
        def _findmnt(cmd):
 
187
            dev = cmd[1].split('/')[-1]
 
188
            mnt_point = '/'
 
189
            return FINDMNT_FOUND_TEMPLATE.format(mnt_point, dev)
 
190
        _check_output.side_effect = _findmnt
 
191
        _ensure.side_effect = self._fake_ensure
 
192
        self.test_config.set('block-device', 'guess')
 
193
        _find.return_value = ['/dev/vdb']
 
194
        result = swift_utils.determine_block_devices()
 
195
        self.assertTrue(_find.called)
 
196
        self.assertEquals(result, [])
 
197
 
166
198
    def test_mkfs_xfs(self):
167
199
        swift_utils.mkfs_xfs('/dev/sdb')
168
200
        self.check_call.assert_called_with(