import importlib
import runpy
import sys
import pytest
ENTRYPOINTS = [
("amct_pytorch.deploy", "amct_pytorch.cli.llm.deploy"),
("amct_pytorch.eval", "amct_pytorch.cli.llm.eval"),
("amct_pytorch.extract_ptq_data", "amct_pytorch.cli.llm.extract_ptq_data"),
("amct_pytorch.ptq", "amct_pytorch.cli.llm.ptq"),
]
@pytest.mark.parametrize("module_name,target_name", ENTRYPOINTS)
def test_amct_pytorch_module_exports_main(module_name, target_name):
module = importlib.import_module(module_name)
assert callable(module.main)
@pytest.mark.parametrize("module_name,target_name", ENTRYPOINTS)
def test_amct_pytorch_module_executes_llm_cli_main(monkeypatch, module_name, target_name):
calls = []
target = importlib.import_module(target_name)
monkeypatch.setattr(target, "main", lambda: calls.append(target_name))
sys.modules.pop(module_name, None)
runpy.run_module(module_name, run_name="__main__", alter_sys=True)
assert calls == [target_name]