[master 6/6] Add some working tests for EDD.

vathpela installerbot-noreply at redhat.com
Wed Oct 7 20:44:32 UTC 2015


From: Peter Jones <pjones at redhat.com>

Not many working tests, mind you, but some.

Signed-off-by: Peter Jones <pjones at redhat.com>
---
 tests/devicelibs_test/edd_test.py | 83 ++++++++++++++++++++++++++++-----------
 1 file changed, 60 insertions(+), 23 deletions(-)

diff --git a/tests/devicelibs_test/edd_test.py b/tests/devicelibs_test/edd_test.py
index 3a538b5..6e2b26a 100644
--- a/tests/devicelibs_test/edd_test.py
+++ b/tests/devicelibs_test/edd_test.py
@@ -1,41 +1,78 @@
 import unittest
 import mock
+import os
+import inspect
+
+from blivet.devicelibs.edd import EddEntry
+
+class FakeDevice(object):
+    def __init__(self, name):
+        self.name = name
+
+class FakeEddEntry(EddEntry):
+    def __init__(self, sysfspath, **kw):
+        EddEntry.__init__(self, sysfspath)
+        for (name,value) in kw.items():
+            self.__dict__[name] = value
+
+    def load(self):
+        pass
+
+    def __lt__(self, other):
+        return self.__dict__ < other.__dict__
+
+    def __eq__(self, other):
+        return self.__dict__ == other.__dict__
 
 class EddTestCase(unittest.TestCase):
-    @unittest.skip("not implemented")
+    def _set_fs_root(self, edd_module, fsroot):
+        if fsroot is None:
+            edd_module.fsroot = ""
+        else:
+            dirname = os.path.dirname(inspect.getfile(edd_module))
+            edd_module.fsroot = os.path.join(dirname, "../../tests/devicelibs_test/edd_data/", fsroot)
+
     def test_biosdev_to_edd_dir(self):
         from blivet.devicelibs import edd
+        self._set_fs_root(edd, None)
         path = edd.biosdev_to_edd_dir(138)
         self.assertEqual("/sys/firmware/edd/int13_dev8a", path)
 
-    @unittest.skip("not implemented")
     def test_collect_edd_data(self):
         from blivet.devicelibs import edd
 
-        # test with vda, vdb
-        EddTestFS(self, edd).vda_vdb()
+        # test with sata sda, usb sdb
+        self._set_fs_root(edd, "sata_usb")
         edd_dict = edd.collect_edd_data()
+
+        dev80 = FakeEddEntry(version="0x30", mbr_sig="0x00000000",
+                             sectors=312581808, host_bus="PCI", type="SATA",
+                             pci_dev="00:1f.2", channel=255, ata_device=1,
+                             interface="SATA    \tdevice: 1",
+                             sysfspath=os.path.join(edd.fsroot,
+                                            "sys/firmware/edd/int13_dev80"))
+        dev81 = FakeEddEntry(version="0x21", mbr_sig="0x96a20d28",
+                             sectors=31293440, host_bus="PCI", type="USB",
+                             pci_dev="ff:ff.255", channel=255,
+                             usb_serial=0x30302e31,
+                             interface="USB     \tserial_number: 30302e31",
+                             sysfspath=os.path.join(edd.fsroot,
+                                            "sys/firmware/edd/int13_dev81"))
+
         self.assertEqual(len(edd_dict), 2)
-        self.assertEqual(edd_dict[0x80].type, "SCSI")
-        self.assertEqual(edd_dict[0x80].scsi_id, 0)
-        self.assertEqual(edd_dict[0x80].scsi_lun, 0)
-        self.assertEqual(edd_dict[0x80].pci_dev, "00:05.0")
-        self.assertEqual(edd_dict[0x80].channel, 0)
-        self.assertEqual(edd_dict[0x80].sectors, 16777216)
-        self.assertEqual(edd_dict[0x81].pci_dev, "00:06.0")
-
-        # test with sda, vda
-        EddTestFS(self, edd).sda_vda()
-        edd_dict = edd.collect_edd_data()
+        self.assertEqual(dev80, edd_dict[0x80])
+        self.assertEqual(dev81, edd_dict[0x81])
+
+    def test_get_edd_dict(self):
+        from blivet.devicelibs import edd
+
+        # test with sata sda, usb sdb
+        self._set_fs_root(edd, "sata_usb")
+        devices=(FakeDevice("/dev/sda"), FakeDevice("/dev/sdb"))
+        edd_dict = edd.get_edd_dict(devices)
         self.assertEqual(len(edd_dict), 2)
-        self.assertEqual(edd_dict[0x80].type, "ATA")
-        self.assertEqual(edd_dict[0x80].scsi_id, None)
-        self.assertEqual(edd_dict[0x80].scsi_lun, None)
-        self.assertEqual(edd_dict[0x80].pci_dev, "00:01.1")
-        self.assertEqual(edd_dict[0x80].channel, 0)
-        self.assertEqual(edd_dict[0x80].sectors, 2097152)
-        self.assertEqual(edd_dict[0x80].ata_device, 0)
-        self.assertEqual(edd_dict[0x80].mbr_signature, "0x000ccb01")
+        self.assertEqual(edd_dict["/dev/sda"], 0x80)
+        self.assertEqual(edd_dict["/dev/sdb"], 0x81)
 
     @unittest.skip("not implemented")
     def test_collect_edd_data_cciss(self):


-- 
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/7e327d2b90d4ece072c743d7c8ec403de9fa2418


More information about the anaconda-patches mailing list