Skip to content

Commit d401ef2

Browse files
committed
ceph-volume: fix and clean up unit tests
- update unit test devices/raw/test_list.py: e5e4296 missed the corresponding unit test update. This commit updates it. - fix unit tests when run as non-root user: When unit tests are run as non-root user, it fails for many reasons such as 'permission denied' etc... This commit addresses that by adding missing fixture `is_root` and using pyfakefs when it's needed. - drop test_writer_uses_log_on_unicodeerror test: This test is broken for a while. Since we don't make test against py2, let's drop it. - test_arg_validators cleanup: This makes use of `self.validator` defined in `setup_method()` rather than redefining a new object in each tests. Also, this migrates test_files_are_missing to pyfakefs - test_migrate cleanup: This makes use of `is_root` fixture insead of using mock.patch on `os.getuid` - test_activate cleanup: - removes the fixture monkeypatch from test_no_data_uuid() given that it's not used in this test. - remove the fixture is_root from test_activate_all() - simple.TestActivate.test_no_data_uuid fix: This fixes the following issue: ``` ________________________ TestActivate.test_no_data_uuid ________________________ self = <test_activate.TestActivate object at 0x7f6b1885f1c0> factory = <class 'ceph_volume.tests.conftest.Factory'>, is_root = None capture = <ceph_volume.tests.conftest.Capture object at 0x7f6b17f59340> fake_filesystem = <pyfakefs.fake_filesystem.FakeFilesystem object at 0x7f6b17125190> def test_no_data_uuid(self, factory, is_root, capture, fake_filesystem): fake_filesystem.create_file('/tmp/json-config', contents='{}') args = factory(osd_id='0', osd_fsid='1234', json_config='/tmp/json-config') with pytest.raises(RuntimeError): > activate.Activate([]).activate(args) /home/jenkins-build/build/workspace/ceph-volume-pr/src/ceph-volume/ceph_volume/tests/devices/simple/test_activate.py:12: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ a = (<ceph_volume.devices.simple.activate.Activate object at 0x7f6b16fcd8b0>, <ceph_volume.tests.conftest.Factory object at 0x7f6b16fcd160>) kw = {} @wraps(func) def is_root(*a, **kw): if not os.getuid() == 0 and not os.environ.get('CEPH_VOLUME_SKIP_NEEDS_ROOT', False): > raise exceptions.SuperUserError() E ceph_volume.exceptions.SuperUserError: This command needs to be executed with sudo or as root /home/jenkins-build/build/workspace/ceph-volume-pr/src/ceph-volume/ceph_volume/decorators.py:15: SuperUserError ``` Even though we use the fixture `is_root`, it doesn't seem to work. Using @patch() instead fixes this issue. - address 'PytestRemovedIn8Warning' messages: pretty self-explanatory: ``` PytestRemovedIn8Warning: Support for nose tests is deprecated and will be removed in a future release. ``` ``` To remove this warning, rename it to `setup_method(self)` ``` so this commit renames some `def setup(self)` to `def setup_method(self)` as suggested. - add missing unit tests: This adds some unit test updates missed by commits 0985e20 and bd5e1a8 Signed-off-by: Guillaume Abrioux <[email protected]>
1 parent f06dad9 commit d401ef2

File tree

16 files changed

+150
-113
lines changed

16 files changed

+150
-113
lines changed

src/ceph-volume/ceph_volume/tests/conftest.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,13 @@ def is_root(monkeypatch):
256256
"""
257257
monkeypatch.setattr('os.getuid', lambda: 0)
258258

259+
@pytest.fixture
260+
def is_non_root(monkeypatch):
261+
"""
262+
Patch ``os.getuid()`` so that ceph-volume's decorators that ensure a user
263+
is not root.
264+
"""
265+
monkeypatch.setattr('os.getuid', lambda: 100)
259266

260267
@pytest.fixture
261268
def tmpfile(tmpdir):
@@ -380,6 +387,8 @@ def fake_filesystem(fs):
380387
fs.create_dir('/sys/block/sda/slaves')
381388
fs.create_dir('/sys/block/sda/queue')
382389
fs.create_dir('/sys/block/rbd0')
390+
fs.create_dir('/var/log/ceph')
391+
fs.create_dir('/tmp/osdpath')
383392
yield fs
384393

385394
@pytest.fixture

src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def test_no_osd_id_no_osd_fsid(self, m_create_key, is_root):
6363
a.objectstore.activate()
6464
assert result.value.args[0] == 'Please provide both osd_id and osd_fsid'
6565

66-
def test_bluestore_no_systemd(self, is_root, monkeypatch, capture):
66+
def test_bluestore_no_systemd(self, m_create_key, is_root, monkeypatch, capture):
6767
monkeypatch.setattr('ceph_volume.configuration.load', lambda: None)
6868
fake_enable = Capture()
6969
fake_start_osd = Capture()
@@ -88,7 +88,7 @@ def test_bluestore_no_systemd(self, is_root, monkeypatch, capture):
8888
assert fake_enable.calls == []
8989
assert fake_start_osd.calls == []
9090

91-
def test_bluestore_systemd(self, is_root, monkeypatch, capture):
91+
def test_bluestore_systemd(self, m_create_key, is_root, monkeypatch, capture):
9292
monkeypatch.setattr('ceph_volume.configuration.load', lambda: None)
9393
fake_enable = Capture()
9494
fake_start_osd = Capture()
@@ -114,7 +114,7 @@ def test_bluestore_systemd(self, is_root, monkeypatch, capture):
114114
assert fake_enable.calls != []
115115
assert fake_start_osd.calls != []
116116

117-
def test_bluestore_no_systemd_autodetect(self, is_root, monkeypatch, capture):
117+
def test_bluestore_no_systemd_autodetect(self, m_create_key, is_root, monkeypatch, capture):
118118
monkeypatch.setattr('ceph_volume.configuration.load', lambda: None)
119119
fake_enable = Capture()
120120
fake_start_osd = Capture()
@@ -140,7 +140,7 @@ def test_bluestore_no_systemd_autodetect(self, is_root, monkeypatch, capture):
140140
assert fake_enable.calls == []
141141
assert fake_start_osd.calls == []
142142

143-
def test_bluestore_systemd_autodetect(self, is_root, monkeypatch, capture):
143+
def test_bluestore_systemd_autodetect(self, m_create_key, is_root, monkeypatch, capture):
144144
monkeypatch.setattr('ceph_volume.configuration.load', lambda: None)
145145
fake_enable = Capture()
146146
fake_start_osd = Capture()
@@ -242,7 +242,7 @@ def test_detects_osds_to_activate_systemd(self, m_activate, m_create_key, is_roo
242242
m_activate.assert_has_calls(calls)
243243

244244
@patch('ceph_volume.objectstore.lvmbluestore.LvmBlueStore.activate')
245-
def test_detects_osds_to_activate_no_systemd(self, m_activate, is_root, monkeypatch):
245+
def test_detects_osds_to_activate_no_systemd(self, m_activate, m_create_key, is_root, monkeypatch):
246246
monkeypatch.setattr('ceph_volume.objectstore.lvmbluestore.direct_report', lambda: direct_report)
247247
args = ['--all', '--no-systemd', '--bluestore']
248248
a = activate.Activate(args)

src/ceph-volume/ceph_volume/tests/devices/lvm/test_migrate.py

Lines changed: 11 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -524,8 +524,7 @@ def mock_get_lvs(self, *args, **kwargs):
524524
def mock_prepare_dmcrypt(self, *args, **kwargs):
525525
return '/dev/mapper/' + kwargs['mapping']
526526

527-
@patch('os.getuid', return_value=1)
528-
def test_newdb_non_root(self, m_getuid):
527+
def test_newdb_non_root(self, is_non_root):
529528
with pytest.raises(Exception) as error:
530529
migrate.NewDB(argv=[
531530
'--osd-id', '1',
@@ -534,9 +533,7 @@ def test_newdb_non_root(self, m_getuid):
534533
expected = 'This command needs to be executed with sudo or as root'
535534
assert expected in str(error.value)
536535

537-
@patch('os.getuid')
538-
def test_newdb_not_target_lvm(self, m_getuid, capsys):
539-
m_getuid.return_value = 0
536+
def test_newdb_not_target_lvm(self, is_root, capsys):
540537
with pytest.raises(SystemExit) as error:
541538
migrate.NewDB(argv=[
542539
'--osd-id', '1',
@@ -549,10 +546,7 @@ def test_newdb_not_target_lvm(self, m_getuid, capsys):
549546
assert expected in stderr
550547

551548

552-
@patch('os.getuid')
553-
def test_newdb_already_in_use(self, m_getuid, monkeypatch, capsys):
554-
m_getuid.return_value = 0
555-
549+
def test_newdb_already_in_use(self, is_root, monkeypatch, capsys):
556550
self.mock_volume = api.Volume(lv_name='volume1',
557551
lv_uuid='y',
558552
vg_name='vg',
@@ -571,10 +565,7 @@ def test_newdb_already_in_use(self, m_getuid, monkeypatch, capsys):
571565
expected = 'Target Logical Volume is already used by ceph: vgname/new_db'
572566
assert expected in stderr
573567

574-
@patch('os.getuid')
575-
def test_newdb(self, m_getuid, monkeypatch, capsys):
576-
m_getuid.return_value = 0
577-
568+
def test_newdb(self, is_root, monkeypatch, capsys):
578569
source_tags = \
579570
'ceph.osd_id=0,ceph.type=data,ceph.osd_fsid=1234,'\
580571
'ceph.wal_uuid=wal_uuid,ceph.db_device=/dbdevice'
@@ -819,10 +810,7 @@ def test_newdb_no_systemd(self, is_root, monkeypatch):
819810
'--dev-target', '/dev/VolGroup/target_volume',
820811
'--command', 'bluefs-bdev-new-db']
821812

822-
@patch('os.getuid')
823-
def test_newwal(self, m_getuid, monkeypatch, capsys):
824-
m_getuid.return_value = 0
825-
813+
def test_newwal(self, is_root, monkeypatch, capsys):
826814
source_tags = \
827815
'ceph.osd_id=0,ceph.type=data,ceph.osd_fsid=1234'
828816

@@ -1226,9 +1214,7 @@ def test_migrate_without_args(self, capsys):
12261214
assert not stderr
12271215

12281216

1229-
@patch('os.getuid')
1230-
def test_migrate_data_db_to_new_db(self, m_getuid, monkeypatch):
1231-
m_getuid.return_value = 0
1217+
def test_migrate_data_db_to_new_db(self, is_root, monkeypatch):
12321218

12331219
source_tags = 'ceph.osd_id=2,ceph.type=data,ceph.osd_fsid=1234,' \
12341220
'ceph.cluster_name=ceph,ceph.db_uuid=dbuuid,ceph.db_device=db_dev'
@@ -1600,10 +1586,7 @@ def test_migrate_data_db_to_new_db_no_systemd(self, is_root, monkeypatch):
16001586
'--devs-source', '/var/lib/ceph/osd/ceph-2/block',
16011587
'--devs-source', '/var/lib/ceph/osd/ceph-2/block.db']
16021588

1603-
@patch('os.getuid')
1604-
def test_migrate_data_db_to_new_db_skip_wal(self, m_getuid, monkeypatch):
1605-
m_getuid.return_value = 0
1606-
1589+
def test_migrate_data_db_to_new_db_skip_wal(self, is_root, monkeypatch):
16071590
source_tags = 'ceph.osd_id=2,ceph.type=data,ceph.osd_fsid=1234,' \
16081591
'ceph.cluster_name=ceph,ceph.db_uuid=dbuuid,ceph.db_device=db_dev'
16091592
source_db_tags = 'ceph.osd_id=2,ceph.type=db,ceph.osd_fsid=1234,' \
@@ -1722,10 +1705,7 @@ def test_migrate_data_db_to_new_db_skip_wal(self, m_getuid, monkeypatch):
17221705
'--devs-source', '/var/lib/ceph/osd/ceph-2/block',
17231706
'--devs-source', '/var/lib/ceph/osd/ceph-2/block.db']
17241707

1725-
@patch('os.getuid')
1726-
def test_migrate_data_db_wal_to_new_db(self, m_getuid, monkeypatch):
1727-
m_getuid.return_value = 0
1728-
1708+
def test_migrate_data_db_wal_to_new_db(self, is_root, monkeypatch):
17291709
source_tags = 'ceph.osd_id=2,ceph.type=data,ceph.osd_fsid=1234,' \
17301710
'ceph.cluster_name=ceph,ceph.db_uuid=dbuuid,ceph.db_device=db_dev,' \
17311711
'ceph.wal_uuid=waluuid,ceph.wal_device=wal_dev'
@@ -1996,7 +1976,6 @@ def test_dont_migrate_data_db_wal_to_new_data(self,
19961976
monkeypatch,
19971977
capsys):
19981978
m_getuid.return_value = 0
1999-
20001979
source_tags = 'ceph.osd_id=2,ceph.type=data,ceph.osd_fsid=1234,' \
20011980
'ceph.cluster_name=ceph,ceph.db_uuid=dbuuid,ceph.db_device=db_dev'
20021981
source_db_tags = 'ceph.osd_id=2,ceph.type=db,ceph.osd_fsid=1234,' \
@@ -2058,13 +2037,10 @@ def test_dont_migrate_data_db_wal_to_new_data(self,
20582037
' please use new-db or new-wal command before.'
20592038
assert expected in stderr
20602039

2061-
@patch('os.getuid')
20622040
def test_dont_migrate_db_to_wal(self,
2063-
m_getuid,
2041+
is_root,
20642042
monkeypatch,
20652043
capsys):
2066-
m_getuid.return_value = 0
2067-
20682044
source_tags = 'ceph.osd_id=2,ceph.type=data,ceph.osd_fsid=1234,' \
20692045
'ceph.cluster_name=ceph,ceph.db_uuid=dbuuid,ceph.db_device=db_dev,' \
20702046
'ceph.wal_uuid=waluuid,ceph.wal_device=wal_dev'
@@ -2134,13 +2110,10 @@ def test_dont_migrate_db_to_wal(self,
21342110
expected = 'Migrate to WAL is not supported'
21352111
assert expected in stderr
21362112

2137-
@patch('os.getuid')
21382113
def test_migrate_data_db_to_db(self,
2139-
m_getuid,
2114+
is_root,
21402115
monkeypatch,
21412116
capsys):
2142-
m_getuid.return_value = 0
2143-
21442117
source_tags = 'ceph.osd_id=2,ceph.type=data,ceph.osd_fsid=1234,' \
21452118
'ceph.cluster_name=ceph,ceph.db_uuid=dbuuid,ceph.db_device=db_dev,' \
21462119
'ceph.wal_uuid=waluuid,ceph.wal_device=wal_dev'
@@ -2361,13 +2334,10 @@ def test_migrate_data_db_to_db_no_systemd(self, is_root, monkeypatch):
23612334
'--command', 'bluefs-bdev-migrate',
23622335
'--devs-source', '/var/lib/ceph/osd/ceph-2/block']
23632336

2364-
@patch('os.getuid')
23652337
def test_migrate_data_wal_to_db(self,
2366-
m_getuid,
2338+
is_root,
23672339
monkeypatch,
23682340
capsys):
2369-
m_getuid.return_value = 0
2370-
23712341
source_tags = 'ceph.osd_id=2,ceph.type=data,ceph.osd_fsid=1234,' \
23722342
'ceph.cluster_name=ceph,ceph.db_uuid=dbuuid,ceph.db_device=db_dev,' \
23732343
'ceph.wal_uuid=waluuid,ceph.wal_device=wal_dev'

src/ceph-volume/ceph_volume/tests/devices/lvm/test_prepare.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def test_cannot_use_device(self, m_create_key, factory):
3939

4040
@patch('ceph_volume.util.prepare.create_key', return_value='fake-secret')
4141
class TestGetClusterFsid(object):
42-
def setup(self):
42+
def setup_method(self):
4343
self.p = lvm.prepare.Prepare([])
4444

4545
def test_fsid_is_passed_in(self, m_create_key, factory):
@@ -57,7 +57,7 @@ def test_fsid_is_read_from_ceph_conf(self, m_create_key, factory, conf_ceph_stub
5757
@patch('ceph_volume.util.prepare.create_key', return_value='fake-secret')
5858
class TestPrepare(object):
5959

60-
def setup(self):
60+
def setup_method(self):
6161
self.p = lvm.prepare.Prepare([])
6262

6363
def test_main_spits_help_with_no_arguments(self, m_create_key, capsys):

src/ceph-volume/ceph_volume/tests/devices/raw/test_list.py

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -44,23 +44,27 @@ def _devices_side_effect():
4444
"/dev/sdb3": {},
4545
"/dev/sdc": {},
4646
"/dev/sdd": {},
47+
"/dev/sde": {},
48+
"/dev/sde1": {},
4749
"/dev/mapper/ceph--osd--block--1": {},
4850
"/dev/mapper/ceph--osd--block--2": {},
4951
}
5052

5153
def _lsblk_all_devices(abspath=True):
5254
return [
53-
{"NAME": "/dev/sda", "KNAME": "/dev/sda", "PKNAME": ""},
54-
{"NAME": "/dev/sda1", "KNAME": "/dev/sda1", "PKNAME": "/dev/sda"},
55-
{"NAME": "/dev/sda2", "KNAME": "/dev/sda2", "PKNAME": "/dev/sda"},
56-
{"NAME": "/dev/sda3", "KNAME": "/dev/sda3", "PKNAME": "/dev/sda"},
57-
{"NAME": "/dev/sdb", "KNAME": "/dev/sdb", "PKNAME": ""},
58-
{"NAME": "/dev/sdb2", "KNAME": "/dev/sdb2", "PKNAME": "/dev/sdb"},
59-
{"NAME": "/dev/sdb3", "KNAME": "/dev/sdb3", "PKNAME": "/dev/sdb"},
60-
{"NAME": "/dev/sdc", "KNAME": "/dev/sdc", "PKNAME": ""},
61-
{"NAME": "/dev/sdd", "KNAME": "/dev/sdd", "PKNAME": ""},
62-
{"NAME": "/dev/mapper/ceph--osd--block--1", "KNAME": "/dev/mapper/ceph--osd--block--1", "PKNAME": "/dev/sdd"},
63-
{"NAME": "/dev/mapper/ceph--osd--block--2", "KNAME": "/dev/mapper/ceph--osd--block--2", "PKNAME": "/dev/sdd"},
55+
{"NAME": "/dev/sda", "KNAME": "/dev/sda", "PKNAME": "", "TYPE": "disk"},
56+
{"NAME": "/dev/sda1", "KNAME": "/dev/sda1", "PKNAME": "/dev/sda", "TYPE": "part"},
57+
{"NAME": "/dev/sda2", "KNAME": "/dev/sda2", "PKNAME": "/dev/sda", "TYPE": "part"},
58+
{"NAME": "/dev/sda3", "KNAME": "/dev/sda3", "PKNAME": "/dev/sda", "TYPE": "part"},
59+
{"NAME": "/dev/sdb", "KNAME": "/dev/sdb", "PKNAME": "", "TYPE": "disk"},
60+
{"NAME": "/dev/sdb2", "KNAME": "/dev/sdb2", "PKNAME": "/dev/sdb", "TYPE": "part"},
61+
{"NAME": "/dev/sdb3", "KNAME": "/dev/sdb3", "PKNAME": "/dev/sdb", "TYPE": "part"},
62+
{"NAME": "/dev/sdc", "KNAME": "/dev/sdc", "PKNAME": "", "TYPE": "disk"},
63+
{"NAME": "/dev/sdd", "KNAME": "/dev/sdd", "PKNAME": "", "TYPE": "disk"},
64+
{"NAME": "/dev/sde", "KNAME": "/dev/sde", "PKNAME": "", "TYPE": "disk"},
65+
{"NAME": "/dev/sde1", "KNAME": "/dev/sde1", "PKNAME": "/dev/sde", "TYPE": "part"},
66+
{"NAME": "/dev/mapper/ceph--osd--block--1", "KNAME": "/dev/mapper/ceph--osd--block--1", "PKNAME": "/dev/sdd", "TYPE": "lvm"},
67+
{"NAME": "/dev/mapper/ceph--osd--block--2", "KNAME": "/dev/mapper/ceph--osd--block--2", "PKNAME": "/dev/sdd", "TYPE": "lvm"},
6468
]
6569

6670
# dummy lsblk output for device with optional parent output
@@ -116,6 +120,29 @@ def _bluestore_tool_label_output_sdb2():
116120
}
117121
}'''
118122

123+
def _bluestore_tool_label_output_sde1():
124+
return '''{
125+
"/dev/sde1": {
126+
"osd_uuid": "sde1-uuid",
127+
"size": 214747316224,
128+
"btime": "2023-07-26T13:20:19.509457+0000",
129+
"description": "main",
130+
"bfm_blocks": "268435456",
131+
"bfm_blocks_per_key": "128",
132+
"bfm_bytes_per_block": "4096",
133+
"bfm_size": "214747316224",
134+
"bluefs": "1",
135+
"ceph_fsid": "sde1-fsid",
136+
"kv_backend": "rocksdb",
137+
"magic": "ceph osd volume v026",
138+
"mkfs_done": "yes",
139+
"osd_key": "AQCSHcFkUeLIMBAAjKqANkXafjvVISkXt6FGCA==",
140+
"ready": "ready",
141+
"require_osd_release": "16",
142+
"whoami": "1"
143+
}
144+
}'''
145+
119146
def _bluestore_tool_label_output_dm_okay():
120147
return '''{
121148
"/dev/mapper/ceph--osd--block--1": {
@@ -149,6 +176,8 @@ def _process_call_side_effect(command, **kw):
149176
return _lsblk_output(dev, parent="/dev/sdb"), '', 0
150177
if dev == "/dev/sda" or dev == "/dev/sdb" or dev == "/dev/sdc" or dev == "/dev/sdd":
151178
return _lsblk_output(dev), '', 0
179+
if dev == "/dev/sde1":
180+
return _lsblk_output(dev, parent="/dev/sde"), '', 0
152181
if "mapper" in dev:
153182
return _lsblk_output(dev, parent="/dev/sdd"), '', 0
154183
pytest.fail('dev {} needs behavior specified for it'.format(dev))
@@ -163,6 +192,8 @@ def _process_call_side_effect(command, **kw):
163192
if "/dev/sdb2" in command:
164193
# sdb2 is a phantom atari partition that appears to have some valid bluestore info
165194
return _bluestore_tool_label_output_sdb2(), '', 0
195+
if "/dev/sde1" in command:
196+
return _bluestore_tool_label_output_sde1(), '', 0
166197
if "/dev/mapper/ceph--osd--block--1" in command:
167198
# dm device 1 is a valid bluestore OSD (the other is corrupted/invalid)
168199
return _bluestore_tool_label_output_dm_okay(), '', 0
@@ -181,6 +212,10 @@ def _has_bluestore_label_side_effect(disk_path):
181212
return False # empty disk
182213
if disk_path == "/dev/sdd":
183214
return False # has LVM subdevices
215+
if disk_path == "/dev/sde":
216+
return False # has partitions, it means it shouldn't be an OSD
217+
if disk_path == "/dev/sde1":
218+
return True # is a valid OSD
184219
if disk_path == "/dev/mapper/ceph--osd--block--1":
185220
return True # good OSD
186221
if disk_path == "/dev/mapper/ceph--osd--block--2":
@@ -209,13 +244,18 @@ def test_raw_list(self, patched_disk_lsblk, patched_call, patched_bluestore_labe
209244
assert sdb['device'] == '/dev/sdb'
210245
assert sdb['ceph_fsid'] == 'sdb-fsid'
211246
assert sdb['type'] == 'bluestore'
212-
213247
lvm1 = result['lvm-1-uuid']
214248
assert lvm1['osd_uuid'] == 'lvm-1-uuid'
215249
assert lvm1['osd_id'] == 2
216250
assert lvm1['device'] == '/dev/mapper/ceph--osd--block--1'
217251
assert lvm1['ceph_fsid'] == 'lvm-1-fsid'
218252
assert lvm1['type'] == 'bluestore'
253+
sde1 = result['sde1-uuid']
254+
assert sde1['osd_uuid'] == 'sde1-uuid'
255+
assert sde1['osd_id'] == 1
256+
assert sde1['device'] == '/dev/sde1'
257+
assert sde1['ceph_fsid'] == 'sde1-fsid'
258+
assert sde1['type'] == 'bluestore'
219259

220260
@patch('ceph_volume.util.device.disk.get_devices')
221261
@patch('ceph_volume.util.disk.has_bluestore_label')
@@ -234,5 +274,5 @@ def _has_bluestore_label_side_effect_with_OSError(device_path):
234274
patched_get_devices.side_effect = _devices_side_effect
235275

236276
result = raw.list.List([]).generate()
237-
assert len(result) == 3
277+
assert len(result) == 2
238278
assert 'sdb-uuid' in result

src/ceph-volume/ceph_volume/tests/devices/raw/test_prepare.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pytest
22
from ceph_volume.devices import raw
3-
from mock.mock import patch
3+
from mock.mock import patch, MagicMock
44
from ceph_volume import objectstore
55

66
class TestRaw(object):
@@ -47,8 +47,13 @@ def test_main_shows_full_help(self, m_create_key, capsys):
4747
assert 'Path to bluestore block.wal block device' in stdout
4848
assert 'Enable device encryption via dm-crypt' in stdout
4949

50+
@patch('ceph_volume.util.arg_validators.set_dmcrypt_no_workqueue', return_value=MagicMock())
5051
@patch('ceph_volume.util.arg_validators.ValidRawDevice.__call__')
51-
def test_prepare_dmcrypt_no_secret_passed(self, m_valid_device, m_create_key, capsys):
52+
def test_prepare_dmcrypt_no_secret_passed(self,
53+
m_valid_device,
54+
m_set_dmcrypt_no_workqueue,
55+
m_create_key,
56+
capsys):
5257
m_valid_device.return_value = '/dev/foo'
5358
with pytest.raises(SystemExit):
5459
raw.prepare.Prepare(argv=['--bluestore', '--data', '/dev/foo', '--dmcrypt']).main()

0 commit comments

Comments
 (0)