示例#1
0
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)
示例#2
0
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)
示例#4
0
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)
示例#6
0
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)
示例#7
0
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",
    )
示例#8
0
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)
示例#9
0
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)