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

Source Code for Module qm.test.classes.previous_testrun

 1  ######################################################################## 
 2  # 
 3  # File:   previous_testrun.py 
 4  # Author: Stefan Seefeld 
 5  # Date:   2006-11-16 
 6  # 
 7  # Contents: 
 8  #   QMTest PreviousTestRun extension class. 
 9  # 
10  # Copyright (c) 2006 by CodeSourcery, Inc.  All rights reserved.  
11  # 
12  # For license terms see the file COPYING. 
13  # 
14  ######################################################################## 
15   
16  ######################################################################## 
17  # Imports 
18  ######################################################################## 
19   
20  from qm.fields import TextField, PythonField 
21  from qm.test.expectation_database import ExpectationDatabase 
22  from qm.test.result import Result 
23  from qm.test.base import load_results 
24   
25  ######################################################################## 
26  # Classes 
27  ######################################################################## 
28   
29 -class PreviousTestRun(ExpectationDatabase):
30 """A 'PreviousTestRun' uses test results as expectations. 31 32 A 'PreviousTestRun' uses a ResultsFile such as generated by 33 'qmtest run' to determine the expected outcome for the current 34 test run.""" 35 36 file_name = TextField(description="The name of the results file.") 37 results_file = PythonField("The results file.") 38 39
40 - def __init__(self, **args):
41 42 super(PreviousTestRun, self).__init__(**args) 43 if not self.results_file: 44 self.results_file = open(self.file_name, "rb") 45 results = load_results(self.results_file, self.test_database) 46 self._results = {} 47 for r in results: 48 # Keep test results only. 49 if r.GetKind() == Result.TEST: 50 self._results[r.GetId()] = r
51 52
53 - def Lookup(self, test_id):
54 55 return self._results.get(test_id) or Result(Result.TEST, test_id)
56