qubes-installer-qubes-os/anaconda/old_tests/pyanaconda_test/image_test.py
Marek Marczykowski-Górecki f73b3741f0 Update anaconda to 20.25.16
Apply result of "git diff anaconda-18.37.11-1..anaconda-20.25.16-1" and
resolve conflicts.
2014-04-08 05:50:31 +02:00

148 lines
5.6 KiB
Python

#!/usr/bin/python
import mock
import sys
IMAGENAME = 'Fedora-13-i386-DVD.iso'
class ImageTest(mock.TestCase):
def setUp(self):
self.setupModules(["_isys", "block", "ConfigParser"])
self.fs = mock.DiskIO()
DISCINFO = "1273712438.740122\n"
DISCINFO += "Fedora 13\n"
DISCINFO += "i386\n"
DISCINFO += "ALL\n"
DISCINFO2 = "1273712438.740122\n"
DISCINFO2 += "Fedora 13\n"
DISCINFO2 += "i386\n"
DISCINFO2 += "1,2\n"
self.fs.open('/mnt/install/cdimage/.discinfo', 'w').write(DISCINFO)
self.fs.open('/tmp/.discinfo', 'w').write(DISCINFO2)
import pyanaconda.image
pyanaconda.image.gettext = mock.Mock()
pyanaconda.image.log = mock.Mock()
pyanaconda.image.open = self.fs.open
pyanaconda.image.isys = mock.Mock()
pyanaconda.image._arch = 'i386'
pyanaconda.image.stat = mock.Mock()
pyanaconda.image.stat.ST_SIZE = 0
pyanaconda.image.os = mock.Mock()
pyanaconda.image.os.R_OK = 0
pyanaconda.image.os.stat.return_value = [2048]
pyanaconda.image.os.listdir.return_value=[IMAGENAME]
def tearDown(self):
self.tearDownModules()
def get_media_id_1_test(self):
import pyanaconda.image
ret = pyanaconda.image.getMediaId('/mnt/install/cdimage')
self.assertEqual(ret, '1273712438.740122')
def get_media_id_2_test(self):
import pyanaconda.image
pyanaconda.image.os.access = mock.Mock(return_value=False)
ret = pyanaconda.image.getMediaId('/')
self.assertEqual(ret, None)
def mount_directory_1_test(self):
import pyanaconda.image
pyanaconda.image.os.path.ismount = mock.Mock(return_value=False)
pyanaconda.image.mountDirectory('hd:/dev/sda1:/', mock.Mock())
self.assertEqual(pyanaconda.image.isys.method_calls,
[('mount', ('/dev/sda1', '/mnt/install/isodir'), {'fstype': 'auto', 'options':''})])
def mount_directory_2_test(self):
import pyanaconda.image
pyanaconda.image.os.path.ismount = mock.Mock(return_value=False)
pyanaconda.image.mountDirectory('hd:sda1:/', mock.Mock())
self.assertEqual(pyanaconda.image.isys.method_calls,
[('mount', ('/dev/sda1', '/mnt/install/isodir'), {'fstype': 'auto', 'options':''})])
def mount_directory_3_test(self):
import pyanaconda.image
pyanaconda.image.os.path.ismount = mock.Mock(return_value=True)
pyanaconda.image.mountDirectory('hd:sda1:/', mock.Mock())
self.assertEqual(pyanaconda.image.isys.method_calls, [])
def mount_image_1_test(self):
import pyanaconda.image
self.assertRaises(SystemError, pyanaconda.image.mountImage, '', '/mnt/install/cdimage', mock.Mock())
def mount_image_2_test(self):
import pyanaconda.image
pyanaconda.image.os.path.ismount = mock.Mock(return_value=False)
ret = pyanaconda.image.mountImage('', '/mnt/install/cdimage', mock.Mock())
self.assertEqual(pyanaconda.image.isys.method_calls,
[('isIsoImage', ('/Fedora-13-i386-DVD.iso',), {}),
('mount', ('/Fedora-13-i386-DVD.iso', '/mnt/install/cdimage'),
{'readOnly': True, 'fstype': 'iso9660'}),
('umount', ('/mnt/install/cdimage',), {'removeDir': False}),
('mount', ('/Fedora-13-i386-DVD.iso', '/mnt/install/cdimage'),
{'readOnly': True, 'fstype': 'iso9660'}),
])
def scan_for_media_1_test(self):
import pyanaconda.image
storage = mock.Mock()
storage.devicetree.devices = []
ret = pyanaconda.image.scanForMedia(mock.Mock(), storage)
self.assertEqual(ret, None)
def scan_for_media_2_test(self):
import pyanaconda.image
device = mock.Mock()
device.type = 'cdrom'
device.name = 'deviceName'
storage = mock.Mock()
storage.devicetree.devices = [device]
ret = pyanaconda.image.scanForMedia('/tmp', storage)
self.assertEqual(ret, 'deviceName')
self.assertEqual(device.method_calls,
[('format.mount', (), {'mountpoint': '/tmp'})])
def umount_image_1_test(self):
import pyanaconda.image
pyanaconda.image.umountImage('/tmp')
self.assertEqual(pyanaconda.image.isys.method_calls,
[('umount', ('/tmp',), {'removeDir': False})])
def unmount_cd_1_test(self):
import pyanaconda.image
window = mock.Mock()
pyanaconda.image.unmountCD(None, window)
self.assertEqual(window.method_calls, [])
def unmount_cd_2_test(self):
import pyanaconda.image
window = mock.Mock()
device = mock.Mock()
pyanaconda.image.unmountCD(device, window)
self.assertEqual(window.method_calls, [])
self.assertEqual(device.method_calls,
[('format.unmount', (), {})])
def verify_media_1_test(self):
import pyanaconda.image
ret = pyanaconda.image.verifyMedia('/tmp')
self.assertTrue(ret)
def verify_media_2_test(self):
import pyanaconda.image
ret = pyanaconda.image.verifyMedia('/tmp', timestamp=1337)
self.assertFalse(ret)
def verify_media_3_test(self):
import pyanaconda.image
pyanaconda.image._arch = 'x86_64'
ret = pyanaconda.image.verifyMedia('/tmp', 1)
self.assertFalse(ret)