source: trunk/misc/tools/log_analysis/test_logAnalyser.py @ 8717

Last change on this file since 8717 was 8322, checked in by gray, 13 years ago

getting logging working

File size: 2.8 KB
Line 
1#!/usr/bin/env python
2#
3
4# Warning, this will not update as the log format is updated.
5
6import os
7import unittest
8import tempfile
9from anuga.utilities.log import TimingDelimiter
10from logAnalyser import AnalyseLog
11
12class 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
82if __name__ == "__main__":
83    suite = unittest.makeSuite(logTestCase,'test')
84    runner = unittest.TextTestRunner() #verbosity=2)
85    runner.run(suite)
86   
Note: See TracBrowser for help on using the repository browser.