mirror of
https://github.com/sstent/go-garth.git
synced 2026-01-26 17:11:42 +00:00
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
import builtins
|
|
import getpass
|
|
import sys
|
|
|
|
import pytest
|
|
|
|
from garth.cli import main
|
|
|
|
|
|
def test_help_flag(monkeypatch, capsys):
|
|
# -h should print help and exit with code 0
|
|
monkeypatch.setattr(sys, "argv", ["garth", "-h"])
|
|
with pytest.raises(SystemExit) as excinfo:
|
|
main()
|
|
assert excinfo.value.code == 0
|
|
out, err = capsys.readouterr()
|
|
assert "usage:" in out.lower()
|
|
|
|
|
|
def test_no_args_prints_help(monkeypatch, capsys):
|
|
# No args should print help and not exit
|
|
monkeypatch.setattr(sys, "argv", ["garth"])
|
|
main()
|
|
out, err = capsys.readouterr()
|
|
assert "usage:" in out.lower()
|
|
|
|
|
|
@pytest.mark.vcr
|
|
def test_login_command(monkeypatch, capsys):
|
|
def mock_input(prompt):
|
|
match prompt:
|
|
case "Email: ":
|
|
return "user@example.com"
|
|
case "MFA code: ":
|
|
code = "023226"
|
|
return code
|
|
|
|
monkeypatch.setattr(sys, "argv", ["garth", "login"])
|
|
monkeypatch.setattr(builtins, "input", mock_input)
|
|
monkeypatch.setattr(getpass, "getpass", lambda _: "correct_password")
|
|
main()
|
|
out, err = capsys.readouterr()
|
|
assert out
|
|
assert not err
|