From: Alfredo Deza Date: Thu, 7 Sep 2017 20:54:19 +0000 (-0400) Subject: ceph-volume tests prove missing args.osd_id is fine X-Git-Tag: v12.2.1~45^2~10 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a50dc9647282c7b7455774502532f5281ae2aece;p=ceph.git ceph-volume tests prove missing args.osd_id is fine Signed-off-by: Alfredo Deza (cherry picked from commit 8d1a1a885fd65073308c205949bc70b41805f92f) --- diff --git a/src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py new file mode 100644 index 000000000000..40df77576a1d --- /dev/null +++ b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_activate.py @@ -0,0 +1,34 @@ +import pytest +from ceph_volume.devices.lvm import activate, api + + +class Args(object): + + def __init__(self, **kw): + for k, v in kw.items(): + setattr(self, k, v) + + +class TestActivate(object): + + # these tests are very functional, hence the heavy patching, it is hard to + # test the negative side effect with an actual functional run, so we must + # setup a perfect scenario for this test to check it can really work + # with/without osd_id + def test_no_osd_id_matches_fsid(self, is_root, volumes, monkeypatch, capture): + FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=1234") + volumes.append(FooVolume) + monkeypatch.setattr(api, 'Volumes', lambda: volumes) + monkeypatch.setattr(activate, 'activate_filestore', capture) + args = Args(osd_id=None, osd_fsid='1234') + activate.Activate([]).activate(args) + assert capture.calls[0]['args'][0] == [FooVolume] + + def test_no_osd_id_no_matching_fsid(self, is_root, volumes, monkeypatch, capture): + FooVolume = api.Volume(lv_name='foo', lv_path='/dev/vg/foo', lv_tags="ceph.osd_fsid=11234") + volumes.append(FooVolume) + monkeypatch.setattr(api, 'Volumes', lambda: volumes) + monkeypatch.setattr(activate, 'activate_filestore', capture) + args = Args(osd_id=None, osd_fsid='1234') + with pytest.raises(RuntimeError): + activate.Activate([]).activate(args)