cli: lowercase metavar by default (#10227)

* cli: lowercase metavar by default

* add tests for help message
This commit is contained in:
skshetry
2024-01-11 12:53:17 +05:45
committed by GitHub
parent 1c06302a47
commit eae4fe21ce
62 changed files with 180 additions and 210 deletions
+16
View File
@@ -1,5 +1,7 @@
import logging
import re
from argparse import SUPPRESS, ArgumentParser
from itertools import takewhile
from typing import Tuple
import pytest
@@ -44,5 +46,19 @@ def test_help(caplog, capsys, command_tuples):
assert not caplog.text
out, err = capsys.readouterr()
# validate metavars are all in lowercase
usage = "\n".join(takewhile(lambda o: bool(o), out.splitlines()))
message = (
"metavars not lowercased, you are likely missing formatter_class=XXX "
"in the command, where XXX should be any of the classes from "
"`dvc.cli.formatter`, which automatically lowercases metavars.\n"
"\nExample:\n"
"\nfrom dvc.cli import formatter\n"
"\nparser.add_parser(..., formatter_class=formatter.TextHelpFormatter)\n"
)
assert not re.findall(r"\b[A-Z]{2,}\b", usage, re.MULTILINE), message
assert not err
assert out