def test_custom_help(tmpdir: Path) -> None: result, _err = run_python_script([ "examples/configure_hydra/custom_help/my_app.py", "hydra.run.dir=" + str(tmpdir), "--help", ]) expected = dedent("""\ == AwesomeApp == This is AwesomeApp! You can choose a db driver by appending == Configuration groups == Compose your configuration from those groups (db=mysql) db: mysql, postgresql == Config == This is the config generated for this run. You can override everything, for example: python my_app.py db.user=foo db.pass=bar ------- db: driver: mysql user: omry pass: secret ------- Powered by Hydra (https://hydra.cc) Use --hydra-help to view Hydra specific help """) assert_text_same(from_line=expected, to_line=result)
def test_help(tmpdir: Path, script: str, flag: str, overrides: List[str], expected: Any) -> None: cmd = [script, "hydra.run.dir=" + str(tmpdir)] cmd.extend(overrides) cmd.append(flag) result, _err = run_python_script(cmd) assert_text_same(result, expected.format(script=script))
def test_instantiate_schema_recursive( monkeypatch: Any, tmpdir: Path, overrides: List[str], expected: str ) -> None: monkeypatch.chdir("examples/instantiate/schema_recursive") cmd = ["my_app.py", "hydra.run.dir=" + str(tmpdir)] + overrides result, _err = run_python_script(cmd) assert_text_same(result, expected)
def test_cfg_resolve_interpolation(tmpdir: Path, script: str, resolve: bool, flags: List[str], expected: str) -> None: cmd = [script, "hydra.run.dir=" + str(tmpdir), "--cfg=job"] + flags if resolve: cmd.append("--resolve") result, _err = run_python_script(cmd) assert_text_same(result, expected)
def test_instantiate_schema_recursive(tmpdir: Path, overrides: List[str], expected: str) -> None: cmd = [ "examples/instantiate/schema_recursive/my_app.py", f"hydra.run.dir={tmpdir}", ] + overrides result, _err = run_python_script(cmd) assert_text_same(result, expected)
def test_instantiate_docs_example(tmpdir: Path, overrides: List[str], expected: str) -> None: cmd = [ "examples/instantiate/docs_example/my_app.py", f"hydra.run.dir={tmpdir}", "hydra.job.chdir=True", ] + overrides result, _err = run_python_script(cmd) assert_text_same(result, expected)
def test_hydra_exception(monkeypatch: Any, tmpdir: Any, expected: str) -> None: monkeypatch.chdir("tests/test_apps/app_exception") ret = run_with_error(["my_app.py", f"hydra.run.dir={tmpdir}"]) assert_text_same( from_line=expected, to_line=ret, from_name="Expected output", to_name="Actual output", )
def test_cfg_resolve_interpolation(tmpdir: Path, resolve: bool, expected: str) -> None: cmd = [ "tests/test_apps/simple_interpolation/my_app.py", "hydra.run.dir=" + str(tmpdir), "--cfg=job", ] if resolve: cmd.append("--resolve") result, _err = run_python_script(cmd) assert_text_same(result, expected)
def test_write_protect_config_node(tmpdir: Any) -> None: cmd = [ "examples/patterns/write_protect_config_node/frozen.py", "hydra.run.dir=" + str(tmpdir), "data_bits=10", ] expected = dedent("""\ Error merging override data_bits=10 Cannot change read-only config container full_key: data_bits object_type=SerialPort Set the environment variable HYDRA_FULL_ERROR=1 for a complete stack trace. """) err = run_with_error(cmd) assert_text_same(from_line=expected, to_line=err)
def test_instantiate_docs_example(monkeypatch: Any, tmpdir: Path, overrides: List[str], expected: str) -> None: monkeypatch.chdir("examples/instantiate/docs_example") cmd = ["my_app.py", "hydra.run.dir=" + str(tmpdir)] + overrides result, _err = get_run_output(cmd) assert_text_same(result, expected)