qubes-installer-qubes-os/anaconda/tests/logpicker_test/logmining_test/anacondalogminer_test.py
2013-01-24 01:45:53 +01:00

126 lines
4.1 KiB
Python

import mock
class AnacondaLogMinerTest(mock.TestCase):
def setUp(self):
self.setupModules([])
self.fs = mock.DiskIO()
def tearDown(self):
self.tearDownModules()
def action_test(self):
import log_picker.logmining as logmining
ANACONDA_LOG = "anaconda-tb-log"
ANACONDA_LOG_PATH = "/tmp/%s" % ANACONDA_LOG
LOG_CONTENT = "Test content\n"
self.fs.open(ANACONDA_LOG_PATH, 'w').write(LOG_CONTENT)
logmining.os = mock.Mock()
listdir_values = [[ANACONDA_LOG], []]
logmining.os.listdir.side_effect = lambda x: listdir_values.pop()
logmining.open = self.fs.open
self.fs.open('/var/run/anaconda.pid', 'w').write('555\n')
proc_mock = mock.Mock()
proc_mock.returncode = 0
logmining.subprocess = mock.Mock()
logmining.subprocess.Popen.return_value = proc_mock
logmining.time = mock.Mock()
OUTFILE = '/tmp/outfile'
f = self.fs.open(OUTFILE, 'w')
obj = logmining.AnacondaLogMiner(f)
obj._action()
f.close()
self.assertEqual(self.fs[OUTFILE],
"%s:\n%s\n" % (ANACONDA_LOG_PATH, LOG_CONTENT))
def action_raise_1_test(self):
import log_picker.logmining as logmining
logmining.os = mock.Mock()
listdir_values = [[]]
logmining.os.listdir.side_effect = lambda x: listdir_values.pop()
logmining.open = self.fs.open
obj = logmining.AnacondaLogMiner()
self.assertRaises(logmining.LogMinerError, obj._action)
def action_raise_2_test(self):
import log_picker.logmining as logmining
logmining.os = mock.Mock()
listdir_values = [[]]
logmining.os.listdir.side_effect = lambda x: listdir_values.pop()
logmining.open = self.fs.open
self.fs.open('/var/run/anaconda.pid', 'w').write('555\n')
proc_mock = mock.Mock()
proc_mock.returncode = 1
logmining.subprocess = mock.Mock()
logmining.subprocess.Popen.return_value = proc_mock
obj = logmining.AnacondaLogMiner()
self.assertRaises(logmining.LogMinerError, obj._action)
def action_raise_3_test(self):
import log_picker.logmining as logmining
ANACONDA_LOG = "anaconda-tb-log"
ANACONDA_LOG_PATH = "/tmp/%s" % ANACONDA_LOG
LOG_CONTENT = "Test content\n"
self.fs.open(ANACONDA_LOG_PATH, 'w').write(LOG_CONTENT)
logmining.os = mock.Mock()
listdir_values = [[], []]
logmining.os.listdir.side_effect = lambda x: listdir_values.pop()
logmining.open = self.fs.open
self.fs.open('/var/run/anaconda.pid', 'w').write('555\n')
proc_mock = mock.Mock()
proc_mock.returncode = 0
logmining.subprocess = mock.Mock()
logmining.subprocess.Popen.return_value = proc_mock
logmining.time = mock.Mock()
obj = logmining.AnacondaLogMiner()
self.assertRaises(logmining.LogMinerError, obj._action)
def action_raise_4_test(self):
import log_picker.logmining as logmining
ANACONDA_LOG = "different-log"
ANACONDA_LOG_PATH = "/tmp/%s" % ANACONDA_LOG
LOG_CONTENT = "Test content\n"
self.fs.open(ANACONDA_LOG_PATH, 'w').write(LOG_CONTENT)
logmining.os = mock.Mock()
listdir_values = [[ANACONDA_LOG], []]
logmining.os.listdir.side_effect = lambda x: listdir_values.pop()
logmining.open = self.fs.open
self.fs.open('/var/run/anaconda.pid', 'w').write('555\n')
proc_mock = mock.Mock()
proc_mock.returncode = 0
logmining.subprocess = mock.Mock()
logmining.subprocess.Popen.return_value = proc_mock
logmining.time = mock.Mock()
obj = logmining.AnacondaLogMiner()
self.assertRaises(logmining.LogMinerError, obj._action)