]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/ceph-volume/ceph_volume/tests/devices/lvm/test_listing.py
import ceph 14.2.5
[ceph.git] / ceph / 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):