import sys
from unittest.mock import patch
from cli.main import main
class TestCli:
@patch("optix.optimizer.optimizer.main")
def test_optix_command(self, mock_optix_main):
with patch.object(sys, "argv", ["msmodeling", "optix"]):
main()
mock_optix_main.assert_called_once()
def test_no_command_prints_help(self, capsys):
with patch.object(sys, "argv", ["msmodeling"]):
main()
captured = capsys.readouterr()
assert "msmodeling" in captured.out or "usage" in captured.out.lower()
@patch("optix.optimizer.optimizer.main")
def test_optix_passes_remaining_args(self, mock_optix_main):
with patch.object(sys, "argv", ["msmodeling", "optix", "--some-arg", "value"]):
main()
assert sys.argv == ["msmodeling", "--some-arg", "value"]
def test_unknown_command_prints_help(self, capsys):
with patch.object(sys, "argv", ["msmodeling", "--unknown"]):
main()
captured = capsys.readouterr()
assert "msmodeling" in captured.out or "commands" in captured.out.lower()