ceph-volume tests patch Device() by splitting parametrized method 25067/head
authorAlfredo Deza <adeza@redhat.com>
Mon, 12 Nov 2018 17:57:26 +0000 (12:57 -0500)
committerAlfredo Deza <adeza@redhat.com>
Mon, 12 Nov 2018 20:01:42 +0000 (15:01 -0500)
This was causing failures on systems where there is no LVM or where the
device names don't match. Patching is always recommended to avoid
conflicts with the system testing

Signed-off-by: Alfredo Deza <adeza@redhat.com>
(cherry picked from commit 82d96f876484c9668e2fc4726057691ba2c50f06)

src/ceph-volume/ceph_volume/tests/util/test_device.py

index 3d646a22c782bace7531ac0db2f21030747392e3..74e817c6a5dfc741053642b1d9fadbdcd6e39dcc 100644 (file)
@@ -117,21 +117,41 @@ class TestDevice(object):
         disk = device.Device("/dev/sda")
         assert not disk.used_by_ceph
 
-    disk1 = device.Device("/dev/sda")
-    disk2 = device.Device("/dev/sdb")
-    disk2._valid = False
-    disk3 = device.Device("/dev/sdc")
-    disk4 = device.Device("/dev/sdd")
-    disk4._valid = False
-
-    @pytest.mark.parametrize("diska, diskb", [
-        pytest.param(disk1, disk2, id="(_, valid) < (_, invalid)"),
-        pytest.param(disk1, disk3, id="(sda, valid) < (sdc, valid)"),
-        pytest.param(disk3, disk2, id="(sdc, valid) < (sdb, invalid)"),
-        pytest.param(disk2, disk4, id="(sdb, invalid) < (sdd, invalid)"),
-    ])
-    def test_ordering(self, diska, diskb):
-        assert diska < diskb and diskb > diska
+
+class TestDeviceOrdering(object):
+
+    def setup(self):
+        self.data = {
+                "/dev/sda": {"removable": 0},
+                "/dev/sdb": {"removable": 1}, # invalid
+                "/dev/sdc": {"removable": 0},
+                "/dev/sdd": {"removable": 1}, # invalid
+        }
+
+    def test_valid_before_invalid(self, device_info):
+        device_info(devices=self.data)
+        sda = device.Device("/dev/sda")
+        sdb = device.Device("/dev/sdb")
+
+        assert sda < sdb
+        assert sdb > sda
+
+    def test_valid_alphabetical_ordering(self, device_info):
+        device_info(devices=self.data)
+        sda = device.Device("/dev/sda")
+        sdc = device.Device("/dev/sdc")
+
+        assert sda < sdc
+        assert sdc > sda
+
+    def test_invalid_alphabetical_ordering(self, device_info):
+        device_info(devices=self.data)
+        sdb = device.Device("/dev/sdb")
+        sdd = device.Device("/dev/sdd")
+
+        assert sdb < sdd
+        assert sdd > sdb
+
 
 ceph_partlabels = [
     'ceph data', 'ceph journal', 'ceph block',