GildedRose-Refactoring-Kata/venv/Lib/site-packages/approvaltests/utilities/command_line_approvals.py

37 lines
1013 B
Python

import os
import subprocess
from typing import Sequence
from approvaltests import verify, Options
def verify_command_line_with_inputs(
command, *, inputs: Sequence[any] = None, options: Options = None
):
input_string = "\n".join(map(lambda a: f"{a}", inputs))
verify_command_line(command, input_string=input_string, options=options)
def verify_command_line(
command_line,
*, # enforce keyword arguments - https://www.python.org/dev/peps/pep-3102/
input_string: str = None,
options: Options = None,
current_working_directory=".",
additional_environment_variables=None,
):
my_env = None
if additional_environment_variables:
my_env = {**os.environ, **additional_environment_variables}
verify(
subprocess.check_output(
command_line,
shell=True,
universal_newlines=True,
input=input_string,
cwd=current_working_directory,
env=my_env,
),
options=options,
)