31
from testtools.testresult.doubles import ExtendedTestResult
28
32
from testtools.matchers import DocTestMatches, raises
30
34
from testrepository import repository
31
35
from testrepository.repository import file, memory
32
from testrepository.tests import ResourcedTestCase
36
from testrepository.tests import (
33
40
from testrepository.tests.stubpackage import (
108
115
def run_timed(id, duration, result):
109
116
"""Make and run a test taking duration seconds."""
110
start = datetime.datetime.now(tz=iso8601.Utc())
117
start = datetime.now(tz=iso8601.Utc())
111
118
result.time(start)
112
119
test = make_test(id, True)
113
120
result.startTest(test)
114
result.time(start + datetime.timedelta(seconds=duration))
121
result.time(start + timedelta(seconds=duration))
115
122
result.addSuccess(test)
116
123
result.stopTest(test)
287
294
run = repo.get_test_run(inserted)
288
295
self.assertNotEqual(None, run)
297
def test_get_latest_run(self):
298
repo = self.repo_impl.initialise(self.sample_url)
299
result = repo.get_inserter()
300
result.startTestRun()
301
inserted = result.stopTestRun()
302
run = repo.get_latest_run()
303
self.assertEqual(inserted, run.get_id())
305
def test_get_latest_run_empty_repo(self):
306
repo = self.repo_impl.initialise(self.sample_url)
307
self.assertRaises(KeyError, repo.get_latest_run)
309
def test_get_test_run_get_id(self):
310
repo = self.repo_impl.initialise(self.sample_url)
311
result = repo.get_inserter()
312
result.startTestRun()
313
inserted = result.stopTestRun()
314
run = repo.get_test_run(inserted)
315
self.assertEqual(inserted, run.get_id())
317
def test_get_test_run_preserves_time(self):
318
# The test run outputs the time events that it received.
319
now = datetime(2001, 1, 1, 0, 0, 0, tzinfo=iso8601.Utc())
320
second = timedelta(seconds=1)
321
repo = self.repo_impl.initialise(self.sample_url)
322
test = make_test(self.getUniqueString(), True)
323
result = repo.get_inserter()
324
result.startTestRun()
326
result.startTest(test)
327
result.time(now + 1 * second)
328
result.addSuccess(test)
329
result.stopTest(test)
330
inserted = result.stopTestRun()
331
run = repo.get_test_run(inserted)
332
result = ExtendedTestResult()
333
run.get_test().run(result)
336
[('time', Wildcard), # XXX: Auto-timer inserts clock time
338
('startTest', Wildcard),
339
('time', now + 1 * second),
340
('addSuccess', Wildcard),
341
('stopTest', Wildcard),
344
def test_get_failing_get_id(self):
345
repo = self.repo_impl.initialise(self.sample_url)
346
result = repo.get_inserter()
347
result.startTestRun()
349
run = repo.get_failing()
350
self.assertEqual(None, run.get_id())
290
352
def test_get_subunit_from_test_run(self):
291
353
repo = self.repo_impl.initialise(self.sample_url)
292
354
result = repo.get_inserter()