diff --git a/scripts/ci_tests/dbt_metricflow_package_test.py b/scripts/ci_tests/dbt_metricflow_package_test.py index 2f56d92f9..08a263dc7 100644 --- a/scripts/ci_tests/dbt_metricflow_package_test.py +++ b/scripts/ci_tests/dbt_metricflow_package_test.py @@ -2,20 +2,30 @@ import subprocess from pathlib import Path +from typing import Optional + + +def _run_shell_command(command: str, cwd: Optional[Path] = None) -> None: + if cwd is None: + cwd = Path.cwd() + + print(f"Running {command=} cwd={cwd.as_posix()!r}") + subprocess.check_call(command, shell=True, cwd=cwd.as_posix()) + if __name__ == "__main__": # Check that the `mf` command is installed. - print(f"Running from {Path.cwd().as_posix()}") - print("Checking path to python") - subprocess.check_call("which python", shell=True) - subprocess.check_call("mf", shell=True) + _run_shell_command("which python") + _run_shell_command("which mf") + _run_shell_command("mf") # Run the tutorial using `--yes` to create the sample project without user interaction. - subprocess.check_call("mf tutorial --yes", shell=True) - tutorial_directory = Path.cwd().joinpath("mf_tutorial_project").as_posix() + _run_shell_command("mf tutorial --yes") + tutorial_directory = Path.cwd().joinpath("mf_tutorial_project") # Run the first few tutorial steps. - subprocess.check_call("dbt seed", cwd=tutorial_directory, shell=True) - subprocess.check_call("dbt build", cwd=tutorial_directory, shell=True) - subprocess.check_call( - "mf query --metrics transactions --group-by metric_time --order metric_time", cwd=tutorial_directory, shell=True + _run_shell_command("dbt seed", cwd=tutorial_directory) + _run_shell_command("dbt build", cwd=tutorial_directory) + _run_shell_command( + "mf query --metrics transactions --group-by metric_time --order metric_time", + cwd=tutorial_directory, )