1 | #!/usr/bin/env python |
---|
2 | # |
---|
3 | |
---|
4 | # Warning, this will not update as the log format is updated. |
---|
5 | |
---|
6 | import os |
---|
7 | import unittest |
---|
8 | import tempfile |
---|
9 | from anuga.utilities.log import TimingDelimiter |
---|
10 | from logAnalyser import AnalyseLog |
---|
11 | |
---|
12 | class logTestCase(unittest.TestCase): |
---|
13 | |
---|
14 | def setUp(self): |
---|
15 | pass |
---|
16 | |
---|
17 | def tearDown(self): |
---|
18 | pass |
---|
19 | |
---|
20 | def log_lines(self, key, value): |
---|
21 | |
---|
22 | line = '2012-01-23 13:20:10,147 INFO general_mesh:202 |' |
---|
23 | |
---|
24 | #FIXME this logic is in the code somewhere. So it |
---|
25 | # shouldn't be repeated here. |
---|
26 | end_line = TimingDelimiter + ' ' + key + ', ' + \ |
---|
27 | value + '\n' |
---|
28 | return line + end_line |
---|
29 | |
---|
30 | def test_log(self): |
---|
31 | # create a dummy directory and log file |
---|
32 | root_dir = tempfile.mkdtemp('test_logAnalyser') |
---|
33 | dir1 = tempfile.mkdtemp(dir=root_dir) |
---|
34 | dir2 = tempfile.mkdtemp(dir=root_dir) |
---|
35 | |
---|
36 | log_file_name = 'anuga.log' |
---|
37 | |
---|
38 | # Create a fake log file |
---|
39 | log_path_file1 = os.path.join(dir1, log_file_name) |
---|
40 | handle = file(log_path_file1, 'w') |
---|
41 | handle.write('yeah\n yeah\n ') |
---|
42 | handle.write('2012-01-23 13:20:10,147 INFO general_mesh:202 |\n') |
---|
43 | #made_up = {'three':'3', 'five':'5', 'seven':'7'} |
---|
44 | made_up1 = {'numTriangles':'1', 'startMeshTime':'2', 'finishMeshTime':'3', \ |
---|
45 | 'finishTime':'4', 'startMemory':'5', 'finishMemory':'6'} |
---|
46 | for key, val in made_up1.iteritems(): |
---|
47 | handle.write(self.log_lines(key, val)) |
---|
48 | handle.close() |
---|
49 | |
---|
50 | # Create another fake log file |
---|
51 | log_path_file2 = os.path.join(dir2, log_file_name) |
---|
52 | handle = file(log_path_file2, 'w') |
---|
53 | handle.write('yeah\n yeah\n ') |
---|
54 | handle.write('2012-01-23 13:20:10,147 INFO general_mesh:202 |\n') |
---|
55 | #made_up = {'three':'3', 'five':'5', 'seven':'7'} |
---|
56 | made_up2 = {'another':'1', 'startMeshTime':'2', 'finishMeshTime':'3', \ |
---|
57 | 'finishTime':'4', 'startMemory':'5', 'finishMemory':'6'} |
---|
58 | for key, val in made_up2.iteritems(): |
---|
59 | handle.write(self.log_lines(key, val)) |
---|
60 | handle.close() |
---|
61 | |
---|
62 | # output file |
---|
63 | (handle, output_file) = tempfile.mkstemp('.csv','get_bridges_from_dic_') |
---|
64 | os.close(handle) |
---|
65 | output_file = 'yeah.csv' |
---|
66 | |
---|
67 | AnalyseLog(root_dir, output_file, log_file_name) |
---|
68 | |
---|
69 | #FIXME check these results |
---|
70 | |
---|
71 | os.remove(log_path_file1) |
---|
72 | os.remove(log_path_file2) |
---|
73 | os.rmdir(dir1) |
---|
74 | os.rmdir(dir2) |
---|
75 | os.rmdir(root_dir) |
---|
76 | |
---|
77 | |
---|
78 | |
---|
79 | |
---|
80 | ################################################################################ |
---|
81 | |
---|
82 | if __name__ == "__main__": |
---|
83 | suite = unittest.makeSuite(logTestCase,'test') |
---|
84 | runner = unittest.TextTestRunner() #verbosity=2) |
---|
85 | runner.run(suite) |
---|
86 | |
---|