123456789101112131415161718192021222324252627282930313233343536373839 |
- import sys
- from subprocess import Popen, PIPE
- def get_output_error_code(cmd):
- """Get stdout, stderr, and exit code from running a command"""
- p = Popen(cmd, stdout=PIPE, stderr=PIPE)
- out, err = p.communicate()
- out = out.decode('utf8', 'replace')
- err = err.decode('utf8', 'replace')
- return out, err, p.returncode
- def check_help_output(pkg, subcommand=None):
- """test that `python -m PKG [subcommand] -h` works"""
- cmd = [sys.executable, '-m', pkg]
- if subcommand:
- cmd.extend(subcommand)
- cmd.append('-h')
- out, err, rc = get_output_error_code(cmd)
- assert rc == 0, err
- assert "Traceback" not in err
- assert "Options" in out
- assert "--help-all" in out
- return out, err
- def check_help_all_output(pkg, subcommand=None):
- """test that `python -m PKG --help-all` works"""
- cmd = [sys.executable, '-m', pkg]
- if subcommand:
- cmd.extend(subcommand)
- cmd.append('--help-all')
- out, err, rc = get_output_error_code(cmd)
- assert rc == 0, err
- assert "Traceback" not in err
- assert "Options" in out
- assert "Class parameters" in out
- return out, err
|