1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
import mock
class LogminingBaseClassTest(mock.TestCase):
def setUp(self):
self.setupModules([])
self.fs = mock.DiskIO()
def tearDown(self):
self.tearDownModules()
def get_filename_test(self):
from log_picker.logmining import LogMinerBaseClass
ret = LogMinerBaseClass.get_filename()
self.assertEqual(ret, LogMinerBaseClass._filename)
def get_description_test(self):
from log_picker.logmining import LogMinerBaseClass
ret = LogMinerBaseClass.get_description()
self.assertEqual(ret, LogMinerBaseClass._description)
def set_logfile_test(self):
from log_picker.logmining import LogMinerBaseClass
FILENAME = "file123"
obj = LogMinerBaseClass()
obj.set_logfile(FILENAME)
self.assertEqual(FILENAME, obj.logfile)
def write_separator_test(self):
import log_picker.logmining as logmining
logmining.open = self.fs.open
OUTFILE = '/tmp/logfile'
f = self.fs.open(OUTFILE, 'w')
obj = logmining.LogMinerBaseClass(f)
obj._write_separator()
f.close()
self.assertEqual(self.fs[OUTFILE], '\n\n')
def write_files_1_test(self):
import log_picker.logmining as logmining
logmining.open = self.fs.open
FILE = '/tmp/infile'
CONTENT = "some_random_456_content\n"
self.fs.open(FILE, 'w').write(CONTENT)
OUTFILE = '/tmp/logfile'
f = self.fs.open(OUTFILE, 'w')
obj = logmining.LogMinerBaseClass(f)
obj._write_files(FILE)
f.close()
self.assertEqual('%s:\n%s\n' % (FILE, CONTENT), self.fs[OUTFILE])
def write_files_2_test(self):
import log_picker.logmining as logmining
logmining.open = self.fs.open
FILE_1 = '/tmp/infile1'
FILE_2 = '/tmp/infile2'
CONTENT_1 = "some_random_456_content\n"
CONTENT_2 = "next_line_789\n"
self.fs.open(FILE_1, 'w').write(CONTENT_1)
self.fs.open(FILE_2, 'w').write(CONTENT_2)
OUTFILE = '/tmp/logfile'
f = self.fs.open(OUTFILE, 'w')
obj = logmining.LogMinerBaseClass(f)
obj._write_files([FILE_1, FILE_2])
f.close()
self.assertEqual('%s:\n%s\n%s:\n%s\n' % \
(FILE_1, CONTENT_1, FILE_2, CONTENT_2), self.fs[OUTFILE])
def run_command_test(self):
import log_picker.logmining as logmining
COMMAND = "some_command param1 param2"
STDOUT = "some output"
STDERR = "some error"
RETCODE = 1
proc_mock = mock.Mock()
proc_mock.returncode = RETCODE
proc_mock.communicate.return_value = (STDOUT, STDERR)
logmining.subprocess = mock.Mock()
logmining.subprocess.Popen.return_value = proc_mock
OUTFILE = "/tmp/outfile"
f = self.fs.open(OUTFILE, 'w')
obj = logmining.LogMinerBaseClass(f)
obj._run_command(COMMAND)
f.close()
self.assertEqual(self.fs[OUTFILE],
"STDOUT:\nsome output\nSTDERR:\nsome error\nRETURN CODE: 1\n")
|