133 lines
4.7 KiB
Python
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)
|