[blivet:rhel7 2/6] Fix failing udev_test (#1065431)
mulhern
amulhern at redhat.com
Mon Feb 17 22:08:21 UTC 2014
Resolves: rhbz#1065431
Cherry-picked from commit 01c6949ee336e3bb3861a9e94280f5ec1dcc62b4 (udev_test.py) part.
Signed-off-by: mulhern <amulhern at redhat.com>
---
tests/udev_test.py | 65 +++++++++++++++++++++++++++++++-----------------------
1 file changed, 37 insertions(+), 28 deletions(-)
diff --git a/tests/udev_test.py b/tests/udev_test.py
index 9217aeb..feaca45 100644
--- a/tests/udev_test.py
+++ b/tests/udev_test.py
@@ -1,23 +1,17 @@
#!/usr/bin/python
+import unittest
import mock
import os
-class UdevTest(mock.TestCase):
+class UdevTest(unittest.TestCase):
def setUp(self):
- self.setupModules(["_isys", "block", "ConfigParser"])
- self.fs = mock.DiskIO()
-
import blivet.udev
blivet.udev.os = mock.Mock()
blivet.udev.log = mock.Mock()
- blivet.udev.open = self.fs.open
-
- def tearDown(self):
- self.tearDownModules()
- def udev_enumerate_devices_test(self):
+ def test_udev_enumerate_devices(self):
import blivet.udev
ENUMERATE_LIST = [
'/sys/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda',
@@ -27,7 +21,6 @@ class UdevTest(mock.TestCase):
'/sys/devices/virtual/block/ram1',
'/sys/devices/virtual/block/dm-0',
]
-
blivet.udev.global_udev.enumerate_devices = mock.Mock(return_value=ENUMERATE_LIST)
ret = blivet.udev.udev_enumerate_devices()
self.assertEqual(set(ret),
@@ -37,7 +30,7 @@ class UdevTest(mock.TestCase):
'/devices/virtual/block/dm-0'])
)
- def udev_get_device_1_test(self):
+ def test_udev_get_device_1(self):
import blivet.udev
class Device(object):
@@ -66,6 +59,8 @@ class UdevTest(mock.TestCase):
dev = Device()
blivet.udev.global_udev = mock.Mock()
blivet.udev.global_udev.create_device.return_value = dev
+
+ saved = blivet.udev.udev_parse_uevent_file
blivet.udev.udev_parse_uevent_file = mock.Mock(return_value=dev)
ret = blivet.udev.udev_get_device(DEV_PATH)
@@ -74,13 +69,15 @@ class UdevTest(mock.TestCase):
self.assertEqual(ret['sysfs_path'], DEV_PATH)
self.assertTrue(blivet.udev.udev_parse_uevent_file.called)
- def udev_get_device_2_test(self):
+ blivet.udev.udev_parse_uevent_file = saved
+
+ def test_udev_get_device_2(self):
import blivet.udev
blivet.udev.os.path.exists.return_value = False
ret = blivet.udev.udev_get_device('')
self.assertEqual(ret, None)
- def udev_get_device_3_test(self):
+ def test_udev_get_device_3(self):
import blivet.udev
blivet.udev.os.path.exists.return_value = True
blivet.udev.global_udev = mock.Mock()
@@ -88,8 +85,9 @@ class UdevTest(mock.TestCase):
ret = blivet.udev.udev_get_device('')
self.assertEqual(ret, None)
- def udev_get_devices_test(self):
+ def test_udev_get_devices(self):
import blivet.udev
+ saved = blivet.udev.udev_settle
blivet.udev.udev_settle = mock.Mock()
DEVS = \
['/devices/pci0000:00/0000:00:1f.2/host0/target0:0:0/0:0:0:0/block/sda',
@@ -100,24 +98,31 @@ class UdevTest(mock.TestCase):
blivet.udev.udev_get_device = lambda x: x
ret = blivet.udev.udev_get_devices()
self.assertEqual(ret, DEVS)
+ blivet.udev.udev_settle = saved
- def udev_parse_uevent_file_1_test(self):
+ def test_udev_parse_uevent_file_1(self):
import blivet.udev
- blivet.udev.os.path.normpath = os.path.normpath
- blivet.udev.os.access.return_value = True
+ # For this one we're accessing the real uevent file (twice).
+ path = '/devices/virtual/block/loop1'
+ info = {'sysfs_path': path}
+ for line in open('/sys' + path + '/uevent').readlines():
+ (name, equals, value) = line.strip().partition("=")
+ if not equals:
+ continue
- FILE_CONTENT = "MAJOR=7\nMINOR=1\nDEVNAME=loop1\nDEVTYPE=disk\n"
- self.fs.open('/sys/devices/virtual/block/loop1/uevent', 'w').write(FILE_CONTENT)
- dev = {'sysfs_path': '/devices/virtual/block/loop1'}
+ info[name] = value
+
+ dev = {'sysfs_path': path}
+ blivet.udev.os.path.normpath = os.path.normpath
+ blivet.udev.os.access = os.access
+ blivet.udev.os.R_OK = os.R_OK
ret = blivet.udev.udev_parse_uevent_file(dev)
- self.assertEqual(ret,
- {'sysfs_path': '/devices/virtual/block/loop1',
- 'DEVNAME': 'loop1',
- 'DEVTYPE': 'disk',
- 'MAJOR': '7',
- 'MINOR': '1'})
-
- def udev_parse_uevent_file_2_test(self):
+ self.assertEqual(ret, info)
+ blivet.udev.os.path.normpath = mock.Mock()
+ blivet.udev.os.access = mock.Mock()
+ blivet.udev.os.R_OK = mock.Mock()
+
+ def test_udev_parse_uevent_file_2(self):
import blivet.udev
blivet.udev.os.path.normpath = os.path.normpath
blivet.udev.os.access.return_value = False
@@ -137,3 +142,7 @@ class UdevTest(mock.TestCase):
blivet.udev.util = mock.Mock()
blivet.udev.udev_trigger()
self.assertTrue(blivet.udev.util.run_program.called)
+
+
+if __name__ == "__main__":
+ unittest.main()
--
1.8.3.1
More information about the anaconda-patches
mailing list