20
20
)
21
21
import doctest
22
22
23
- from subunit import iso8601
23
+ from subunit import (
24
+ iso8601 ,
25
+ v2 ,
26
+ )
24
27
25
28
from testresources import TestResource
26
29
from testtools import (
29
32
)
30
33
import testtools
31
34
from testtools .compat import _b
32
- from testtools .testresult .doubles import ExtendedTestResult
35
+ from testtools .testresult .doubles import (
36
+ ExtendedTestResult ,
37
+ StreamResult ,
38
+ )
33
39
from testtools .matchers import DocTestMatches , raises
34
40
35
41
from testrepository import repository
@@ -374,6 +380,61 @@ def test_get_failing_get_id(self):
374
380
run = repo .get_failing ()
375
381
self .assertEqual (None , run .get_id ())
376
382
383
+ def test_get_failing_get_subunit_stream (self ):
384
+ repo = self .repo_impl .initialise (self .sample_url )
385
+ result = repo .get_inserter ()
386
+ legacy_result = testtools .ExtendedToStreamDecorator (result )
387
+ legacy_result .startTestRun ()
388
+ make_test ('testrepository.tests.test_repository.Case.method' , False ).run (legacy_result )
389
+ legacy_result .stopTestRun ()
390
+ run = repo .get_failing ()
391
+ as_subunit = run .get_subunit_stream ()
392
+ stream = v2 .ByteStreamToStreamResult (as_subunit )
393
+ log = StreamResult ()
394
+ log .startTestRun ()
395
+ try :
396
+ stream .run (log )
397
+ finally :
398
+ log .stopTestRun ()
399
+ self .assertEqual (
400
+ log ._events , [
401
+ ('startTestRun' ,),
402
+ ('status' ,
403
+ 'testrepository.tests.test_repository.Case.method' ,
404
+ 'inprogress' ,
405
+ None ,
406
+ True ,
407
+ None ,
408
+ None ,
409
+ False ,
410
+ None ,
411
+ None ,
412
+ Wildcard ),
413
+ ('status' ,
414
+ 'testrepository.tests.test_repository.Case.method' ,
415
+ None ,
416
+ None ,
417
+ True ,
418
+ 'traceback' ,
419
+ Wildcard ,
420
+ True ,
421
+ Wildcard ,
422
+ None ,
423
+ Wildcard ),
424
+ ('status' ,
425
+ 'testrepository.tests.test_repository.Case.method' ,
426
+ 'fail' ,
427
+ None ,
428
+ True ,
429
+ None ,
430
+ None ,
431
+ False ,
432
+ None ,
433
+ None ,
434
+ Wildcard ),
435
+ ('stopTestRun' ,)
436
+ ])
437
+
377
438
def test_get_subunit_from_test_run (self ):
378
439
repo = self .repo_impl .initialise (self .sample_url )
379
440
result = repo .get_inserter ()
@@ -384,10 +445,41 @@ def test_get_subunit_from_test_run(self):
384
445
inserted = result .get_id ()
385
446
run = repo .get_test_run (inserted )
386
447
as_subunit = run .get_subunit_stream ()
387
- self .assertThat (as_subunit .read ().decode ('utf8' ),
388
- DocTestMatches ("""...test: testrepository.tests.test_repository.Case.method...
389
- successful: testrepository.tests.test_repository.Case.method...
390
- """ , doctest .ELLIPSIS ))
448
+ stream = v2 .ByteStreamToStreamResult (as_subunit )
449
+ log = StreamResult ()
450
+ log .startTestRun ()
451
+ try :
452
+ stream .run (log )
453
+ finally :
454
+ log .stopTestRun ()
455
+ self .assertEqual (
456
+ log ._events ,
457
+ [
458
+ ('startTestRun' ,),
459
+ ('status' ,
460
+ 'testrepository.tests.test_repository.Case.method' ,
461
+ 'inprogress' ,
462
+ None ,
463
+ True ,
464
+ None ,
465
+ None ,
466
+ False ,
467
+ None ,
468
+ None ,
469
+ Wildcard ),
470
+ ('status' ,
471
+ 'testrepository.tests.test_repository.Case.method' ,
472
+ 'success' ,
473
+ None ,
474
+ True ,
475
+ None ,
476
+ None ,
477
+ False ,
478
+ None ,
479
+ None ,
480
+ Wildcard ),
481
+ ('stopTestRun' ,)
482
+ ])
391
483
392
484
def test_get_test_from_test_run (self ):
393
485
repo = self .repo_impl .initialise (self .sample_url )
0 commit comments