qubes-installer-qubes-os/anaconda/tests/pyanaconda_test/flags_test.py
2013-01-24 01:45:53 +01:00

133 lines
4.7 KiB
Python

#!/usr/bin/python
# Test Bug 500198
import mock
import sys
class FlagsTest(mock.TestCase):
"""Simulate /proc/cmdline parameters parsing (#500198)"""
def setUp(self):
self.setupModules(["_isys", "block", "ConfigParser"])
self.fs = mock.DiskIO()
import pyanaconda.flags
self.mock2 = mock.Mock()
pyanaconda.flags.open = mock.Mock(return_value=self.mock2)
def tearDown(self):
self.tearDownModules()
def createcmdlinedict_1_test(self):
"""/proc/cmdline without BOOT_IMAGE param"""
import pyanaconda.flags
self.cmd = 'vmlinuz initrd=initrd.img stage2=hd:LABEL="Fedora" xdriver=vesa nomodeset'
self.mock2.read = mock.Mock(return_value=self.cmd)
cmddict = pyanaconda.flags.flags.createCmdlineDict()
self.assertEqual(set(cmddict.keys()),
set(['vmlinuz', 'initrd', 'stage2', 'xdriver', 'nomodeset']))
def createcmdlinedict_2_test(self):
"""/proc/cmdline param: quotes at end"""
import pyanaconda.flags
self.cmd = 'vmlinuz BOOT_IMAGE=/boot/img initrd=initrd.img stage2=hd:LABEL="Fedora"'
self.mock2.read = mock.Mock(return_value=self.cmd)
try:
cmddict = pyanaconda.flags.flags.createCmdlineDict()
except (ValueError):
self.assertTrue(False, "ValueError exception was raised.")
self.assertEqual(set(cmddict.keys()),
set(['vmlinuz', 'BOOT_IMAGE', 'initrd', 'stage2']))
def createcmdlinedict_3_test(self):
"""/proc/cmdline param BOOT_IMAGE with quotes (no quotes at end)"""
import pyanaconda.flags
self.cmd = 'vmlinuz BOOT_IMAGE="img img" initrd=initrd.img'
self.mock2.read = mock.Mock(return_value=self.cmd)
cmddict = pyanaconda.flags.flags.createCmdlineDict()
self.assertEqual(set(cmddict.keys()),
set(['vmlinuz', 'BOOT_IMAGE', 'initrd']))
def createcmdlinedict_4_test(self):
"""/proc/cmdline param BOOT_IMAGE with quotes (no quotes at end) v2"""
import pyanaconda.flags
self.cmd = 'vmlinuz BOOT_IMAGE="/boot/img" stage2=hd:LABEL="Fedora" initrd=initrd.img'
self.mock2.read = mock.Mock(return_value=self.cmd)
cmddict = pyanaconda.flags.flags.createCmdlineDict()
self.assertEqual(set(cmddict.keys()),
set(['vmlinuz', 'BOOT_IMAGE', 'initrd', 'stage2']))
def createcmdlinedict_5_test(self):
"""/proc/cmdline param: BOOT_IMAGE with quotes (+ quotes at end)"""
import pyanaconda.flags
self.cmd = 'vmlinuz BOOT_IMAGE="/boot/img img" initrd=initrd.img stage2=hd:LABEL="Fedora"'
self.mock2.read = mock.Mock(return_value=self.cmd)
try:
cmddict = pyanaconda.flags.flags.createCmdlineDict()
except (ValueError):
self.assertTrue(False, "ValueError exception was raised.")
self.assertEqual(set(cmddict.keys()),
set(['vmlinuz', 'BOOT_IMAGE', 'initrd', 'stage2']))
def setattr_getattr_1_test(self):
import pyanaconda.flags
RET = 1
self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
self.mock2.read = mock.Mock(return_value=self.cmd)
pyanaconda.flags.flags.sshd = RET
self.assertEqual(RET, pyanaconda.flags.flags.sshd)
def setattr_getattr_2_test(self):
import pyanaconda.flags
RET = 0
self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
self.mock2.read = mock.Mock(return_value=self.cmd)
pyanaconda.flags.flags.sshd = RET
self.assertEqual(RET, pyanaconda.flags.flags.sshd)
def setattr_getattr_3_test(self):
import pyanaconda.flags
self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
self.mock2.read = mock.Mock(return_value=self.cmd)
def f(): return pyanaconda.flags.flags.fooattr
self.assertRaises(AttributeError, f)
def setattr_getattr_4_test(self):
import pyanaconda.flags
self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
self.mock2.read = mock.Mock(return_value=self.cmd)
def f(): pyanaconda.flags.flags.fooattr = 1
self.assertRaises(AttributeError, f)
def get_1_test(self):
import pyanaconda.flags
RET = 'text'
self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
self.mock2.read = mock.Mock(return_value=self.cmd)
ret = pyanaconda.flags.flags.get('foobar', RET)
self.assertEqual(RET, ret)
def get_2_test(self):
import pyanaconda.flags
RET = 'text'
self.cmd = 'vmlinuz initrd=initrd.img xdriver=vesa nomodeset'
self.mock2.read = mock.Mock(return_value=self.cmd)
ret = pyanaconda.flags.flags.get('sshd', RET)
self.assertNotEqual(RET, ret)