test: Fix correct cli option value casting
Since we can set the type of the relevant option in the OPTIONS dict, we should also let the cli correctly cast them on parsing, just as the env options do.
This commit is contained in:
parent
bd05dadf56
commit
ee8fef930a
2 changed files with 33 additions and 0 deletions
32
test/test_configuration.py
Normal file
32
test/test_configuration.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
from topen import OPTIONS, parse_cli, parse_env, parse_rc
|
||||
|
||||
|
||||
class TestCli:
|
||||
def test_cli_minimum_id(self, monkeypatch):
|
||||
monkeypatch.setattr("sys.argv", ["topen", "42"])
|
||||
assert parse_cli() == {"task_id": "42"}
|
||||
|
||||
def test_cli_options(self, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
"sys.argv",
|
||||
[
|
||||
"topen",
|
||||
"123",
|
||||
"--extension",
|
||||
"txt",
|
||||
"--editor",
|
||||
"vim",
|
||||
"--quiet",
|
||||
"True",
|
||||
],
|
||||
)
|
||||
assert parse_cli() == {
|
||||
"task_id": "123",
|
||||
"notes_ext": "txt",
|
||||
"notes_editor": "vim",
|
||||
"notes_quiet": True,
|
||||
}
|
||||
1
topen.py
1
topen.py
|
|
@ -295,6 +295,7 @@ you view the task.
|
|||
dest=key,
|
||||
metavar=opt.metavar,
|
||||
help=opt.help_text,
|
||||
type=opt.cast or str,
|
||||
default=None,
|
||||
)
|
||||
args = parser.parse_args()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue