[Notes] [Git][BuildStream/buildstream][bschubert/fix-binary-output-capture] fixup! Don't close stdout when running 'checkout' to stdout



Title: GitLab

Benjamin Schubert pushed to branch bschubert/fix-binary-output-capture at BuildStream / buildstream

Commits:

1 changed file:

Changes:

  • tests/testutils/runcli.py
    ... ... @@ -17,7 +17,7 @@ import pytest
    17 17
     # CliRunner convenience API (click.testing module) does not support
    
    18 18
     # separation of stdout/stderr.
    
    19 19
     #
    
    20
    -from _pytest.capture import MultiCapture, FDCapture
    
    20
    +from _pytest.capture import FDCapture
    
    21 21
     
    
    22 22
     # Import the main cli entrypoint
    
    23 23
     from buildstream._frontend import cli as bst_cli
    
    ... ... @@ -306,8 +306,11 @@ class Cli():
    306 306
             with open(os.devnull) as devnull:
    
    307 307
                 sys.stdin = devnull
    
    308 308
     
    
    309
    -            capture = MultiCapture(out=True, err=True, in_=False, Capture=FDCapture)
    
    310
    -            capture.start_capturing()
    
    309
    +            capture_stdout = FDCapture(1)
    
    310
    +            capture_stderr = FDCapture(2)
    
    311
    +
    
    312
    +            capture_stdout.start()
    
    313
    +            capture_stderr.start()
    
    311 314
     
    
    312 315
                 try:
    
    313 316
                     cli.main(args=args or (), prog_name=cli.name, **extra)
    
    ... ... @@ -331,8 +334,12 @@ class Cli():
    331 334
                     sys.stdout.flush()
    
    332 335
     
    
    333 336
             sys.stdin = old_stdin
    
    334
    -        out, err = capture.readouterr()
    
    335
    -        capture.stop_capturing()
    
    337
    +
    
    338
    +        out = capture_stdout.snap()
    
    339
    +        err = capture_stderr.snap()
    
    340
    +
    
    341
    +        capture_stdout.done()
    
    342
    +        capture_stderr.done()
    
    336 343
     
    
    337 344
             return Result(exit_code=exit_code,
    
    338 345
                           exception=exception,
    



  • [Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]