From 20d6264538dab444c0ef13f40c6c21ec3d2057f8 Mon Sep 17 00:00:00 2001 From: Rishabh Dave Date: Mon, 19 Aug 2019 19:03:21 +0530 Subject: [PATCH] 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 --- .../tests/devices/lvm/test_listing.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 1af1498f013..efbb460f960 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): -- 2.39.5