Added test_show_experiments_sort_by (#6798)

* Added test_show_experiments_sort_by

* Added comment

* help formatting
This commit is contained in:
David de la Iglesia Castro
2021-10-14 14:49:00 +03:00
committed by GitHub
parent 2a3a93314b
commit 7e4f443002
2 changed files with 120 additions and 1 deletions
+4 -1
View File
@@ -956,7 +956,10 @@ def add_parser(subparsers, parent_parser):
)
experiments_show_parser.add_argument(
"--sort-order",
help="Sort order to use with --sort-by.",
help=(
"Sort order to use with --sort-by."
" Defaults to ascending ('asc')."
),
choices=("asc", "desc"),
default="asc",
)
+116
View File
@@ -1,3 +1,4 @@
import csv
from datetime import datetime
import pytest
@@ -407,6 +408,121 @@ def test_show_experiments(capsys):
)
@pytest.mark.parametrize("sort_order", ["asc", "desc"])
def test_show_experiments_sort_by(capsys, sort_order):
sort_experiments = {
"workspace": {
"baseline": {
"data": {
"timestamp": None,
"params": {
"params.yaml": {
"data": {
"foo": 1,
}
}
},
"queued": False,
"running": False,
"executor": None,
"metrics": {},
}
}
},
"233b132676792d89e848e5c9c12e408d7efde78a": {
"baseline": {
"data": {
"timestamp": datetime(2021, 8, 2, 16, 48, 14),
"params": {
"params.yaml": {
"data": {
"foo": 0,
}
}
},
"queued": False,
"running": False,
"executor": None,
"metrics": {},
"name": "master",
}
},
"fad0a94": {
"data": {
"timestamp": datetime(2021, 8, 31, 14, 56, 55),
"params": {
"params.yaml": {
"data": {
"foo": 1,
}
}
},
"queued": False,
"running": False,
"executor": None,
"metrics": {},
"name": "exp-89140",
}
},
"60fcda8": {
"data": {
"timestamp": datetime(2021, 8, 31, 14, 56, 55),
"params": {
"params.yaml": {
"data": {
"foo": 2,
}
}
},
"queued": False,
"running": False,
"executor": None,
"metrics": {},
"name": "exp-43537",
}
},
"a7e9aaf": {
"data": {
"timestamp": datetime(2021, 8, 31, 14, 56, 55),
"params": {
"params.yaml": {
"data": {
"foo": 0,
}
}
},
"queued": False,
"running": False,
"executor": None,
"metrics": {},
"name": "exp-4f89e",
}
},
},
}
show_experiments(
sort_experiments,
precision=None,
fill_value="",
iso=True,
csv=True,
sort_by="foo",
sort_order=sort_order,
)
cap = capsys.readouterr()
rows = list(csv.reader(cap.out.strip().split("\n")))
# [3:] To skip header, workspace and baseline(master)
# which are not affected by order
params = tuple([int(row[-1]) for row in rows[3:]])
if sort_order == "asc":
assert params == (0, 1, 2)
else:
assert params == (2, 1, 0)
def test_experiments_init_config(dvc, mocker):
with dvc.config.edit() as conf:
conf["exp"] = {"code": "new_src", "models": "new_models"}