]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ceph-volume: test number of times LVs list was created 29665/head
authorRishabh Dave <ridave@redhat.com>
Mon, 19 Aug 2019 13:33:21 +0000 (19:03 +0530)
committerRishabh Dave <ridave@redhat.com>
Thu, 29 Aug 2019 10:19:45 +0000 (15:49 +0530)
Add a test that cofirm that the LVs list was created only once when
calling devices.lvm.listing.list()

Signed-off-by: Rishabh Dave <ridave@redhat.com>
src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py

index 1af1498f013514e7c3f01854f3df0de0c5dc7827..efbb460f96033e46acc72885d9e6e2cf0c4afe01 100644 (file)
@@ -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):