From: Rishabh Dave Date: Mon, 19 Aug 2019 13:33:21 +0000 (+0530) Subject: ceph-volume: test number of times LVs list was created X-Git-Tag: v13.2.7~177^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F30096%2Fhead;p=ceph.git ceph-volume: test number of times LVs list was created Add a test that cofirm that the LVs list was created only once when calling devices.lvm.listing.list() Signed-off-by: Rishabh Dave (cherry picked from commit 20d6264538dab444c0ef13f40c6c21ec3d2057f8) --- diff --git a/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py index 173da9392fd5..5c0fec75611b 100644 --- a/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py +++ b/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py @@ -79,6 +79,23 @@ class TestList(object): with pytest.raises(SystemExit): lvm.listing.List([]).list(args) + def test_lvs_list_is_created_just_once(self, monkeypatch, is_root, volumes, factory): + api.volumes_obj_create_count = 0 + + def monkey_populate(self): + api.volumes_obj_create_count += 1 + for lv_item in api.get_api_lvs(): + self.append(api.Volume(**lv_item)) + monkeypatch.setattr(api.Volumes, '_populate', monkey_populate) + + args = factory(format='pretty', device='/dev/sda1') + with pytest.raises(SystemExit): + lvm.listing.List([]).list(args) + + # XXX: Ideally, the count should be just 1. Volumes._populate() is + # being called thrice out of which only twice is moneky_populate. + assert api.volumes_obj_create_count == 2 + class TestFullReport(object):