(tmp_dir, scm, dvc, exp_stage, mocker, name, workspace)
| 33 | |
| 34 | @pytest.mark.parametrize("name", [None, "foo"]) |
| 35 | def test_new_simple(tmp_dir, scm, dvc, exp_stage, mocker, name, workspace): |
| 36 | baseline = scm.get_rev() |
| 37 | tmp_dir.gen("params.yaml", "foo: 2") |
| 38 | |
| 39 | new_mock = mocker.spy(dvc.experiments, "new") |
| 40 | results = dvc.experiments.run( |
| 41 | exp_stage.addressing, name=name, tmp_dir=not workspace |
| 42 | ) |
| 43 | exp = first(results) |
| 44 | ref_info = first(exp_refs_by_rev(scm, exp)) |
| 45 | assert ref_info |
| 46 | assert ref_info.baseline_sha == baseline |
| 47 | |
| 48 | new_mock.assert_called_once() |
| 49 | fs = scm.get_fs(exp) |
| 50 | with fs.open("metrics.yaml", mode="r", encoding="utf-8") as fobj: |
| 51 | assert fobj.read().strip() == "foo: 2" |
| 52 | |
| 53 | if workspace: |
| 54 | assert (tmp_dir / "metrics.yaml").read_text().strip() == "foo: 2" |
| 55 | |
| 56 | exp_name = name or ref_info.name |
| 57 | assert dvc.experiments.get_exact_name([exp])[exp] == exp_name |
| 58 | assert resolve_rev(scm, exp_name) == exp |
| 59 | |
| 60 | |
| 61 | def test_experiment_exists(tmp_dir, scm, dvc, exp_stage, mocker, workspace): |
nothing calls this directly
no test coverage detected