~launchpad-results/launchpad-results/trunk

« back to all changes in this revision

Viewing changes to lib/lpresults/tracker/models/testresult.py

  • Committer: Marc Tardif
  • Date: 2011-07-25 17:11:24 UTC
  • Revision ID: marc.tardif@canonical.com-20110725171124-0gg693yorqv2sxbf
Added script for importing submissions from Launchpad.

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
    "test_result_set",
11
11
    ]
12
12
 
 
13
import re
 
14
 
13
15
from datetime import datetime
14
16
 
15
17
from storm.locals import (
16
18
    And,
17
19
    Int,
18
20
    Join,
 
21
    Like,
19
22
    Unicode,
20
23
    )
21
24
 
89
92
        """See `ITestResultSet`."""
90
93
        test_case_id = getUtility(ITestCaseSet).getId(add_params)
91
94
 
92
 
        if add_params.status is None:
 
95
        # Sanitize parameters
 
96
        if isinstance(add_params.status, basestring):
 
97
            add_params.status = TestResultStatus.get_enum(add_params.status)
 
98
        elif add_params.status is None:
93
99
            add_params.status = TestResultStatus.UNINITIATED
94
100
        if add_params.output is None:
95
101
            add_params.output = u""
96
102
        if add_params.date_created is None:
97
103
            add_params.date_created = datetime.utcnow()
98
104
 
 
105
        # Add the test result
99
106
        store = self.getSearchStore(add_params)
100
107
        store.execute(
101
108
            "SELECT add_test_result(?, ?, ?, ?)", (
123
130
            test_store.remove(test_result)
124
131
            test_store.commit()
125
132
 
 
133
        return test_result
 
134
 
126
135
    def buildSearchTables(self, search_params):
127
136
        """See SearchSet."""
128
137
        from lpresults.tracker.models.testcase import TestCase
174
183
 
175
184
        return expressions
176
185
 
 
186
    def buildSearchText(self, search_text):
 
187
        from lpresults.tracker.models.testcase import TestCase
 
188
 
 
189
        expressions = super(TestResultSet, self).buildSearchText(search_text)
 
190
 
 
191
        for part in re.split(r"\s+", search_text):
 
192
            expressions.append(Like(TestCase.name, "%s%%" % part))
 
193
 
 
194
        return expressions
 
195
 
177
196
    def getSearchResultTables(self):
178
197
        """See SearchSet."""
179
198
        from lpresults.tracker.models.testcase import TestCase
206
225
        self.updateTestTargetParams(params)
207
226
        getUtility(ITestResultSet).add(params)
208
227
 
 
228
        # Increment the count attribute
 
229
        attr = "%s_count" % params.status.name.lower()
 
230
        count = getattr(self, attr)
 
231
        setattr(self, attr, count + 1)
 
232
 
209
233
    def removeTestResult(self, *args, **kwargs):
210
234
        """See `ITestResultTarget`."""
211
235
        params = TestResultRemoveParams(*args, **kwargs)
212
236
        self.updateTestTargetParams(params)
213
 
        getUtility(ITestResultSet).remove(params)
 
237
        test_result = getUtility(ITestResultSet).remove(params)
 
238
 
 
239
        # Decrement the count attribute
 
240
        attr = "%s_count" % test_result.status.name.lower()
 
241
        count = getattr(self, attr)
 
242
        setattr(self, attr, count - 1)
214
243
 
215
244
 
216
245
test_result_set = TestResultSet()