Package qm :: Package test :: Module reader_test_run
[hide private]
[frames] | no frames]

Source Code for Module qm.test.reader_test_run

 1  ######################################################################## 
 2  # 
 3  # File:   reader_test_run.py 
 4  # Author: Mark Mitchell 
 5  # Date:   2005-08-08 
 6  # 
 7  # Contents: 
 8  #   QMTest ReaderTestRun class. 
 9  # 
10  # Copyright (c) 2005 by CodeSourcery, LLC.  All rights reserved.  
11  # 
12  # For license terms see the file COPYING. 
13  # 
14  ######################################################################## 
15   
16  ######################################################################## 
17  # Imports 
18  ######################################################################## 
19   
20  from qm.test.result import Result 
21  from qm.test.test_run import TestRun 
22  from qm.test.result_reader import ResultReader 
23   
24  ######################################################################## 
25  # Classes 
26  ######################################################################## 
27   
28 -class ReaderTestRun(TestRun):
29 """A 'ReaderTestRun' reads its results using a 'ResultReader'. 30 31 A 'ResultReader' provides an iterative interface for reading 32 results. A 'ReaderTestRun' uses a 'ResultReader' to populate a 33 dictionary storing all the results from the reader.""" 34
35 - def __init__(self, reader):
36 """Create a new 'ReaderTestRun' 37 38 'reader' -- The 'ResultReader' from which we are to read 39 results.""" 40 41 # Read the results. 42 self.__results = {} 43 for kind in Result.kinds: 44 self.__results[kind] = {} 45 for result in reader: 46 self.__results[result.GetKind()][result.GetId()] = result 47 48 # Read the annotations. 49 self.__annotations = reader.GetAnnotations()
50 51
52 - def GetResult(self, id, kind = Result.TEST):
53 54 return self.__results[kind].get(id)
55 56
57 - def GetAnnotation(self, key):
58 59 return self.__annotations.get(key)
60 61
62 - def GetAnnotations(self):
63 64 return self.__annotations
65 66
67 - def GetAllResults(self, directory = "", kind = Result.TEST):
68 69 if directory == "": 70 return self.__results[kind].values() 71 else: 72 return [self.__results[kind][id] for id in self.__results[kind] 73 if id.startswith(directory)]
74