95 lines
1.9 KiB
Python
95 lines
1.9 KiB
Python
from pathlib import Path
|
|
|
|
from webwright.run.doctor import (
|
|
check_chromium,
|
|
check_openai_key,
|
|
check_playwright,
|
|
check_plugin_manifests,
|
|
check_python,
|
|
check_screenshot,
|
|
)
|
|
|
|
|
|
def test_check_python():
|
|
ok, message = check_python()
|
|
|
|
assert isinstance(ok, bool)
|
|
assert isinstance(message, str)
|
|
|
|
|
|
def test_check_playwright():
|
|
ok, message = check_playwright()
|
|
|
|
assert isinstance(ok, bool)
|
|
assert isinstance(message, str)
|
|
|
|
|
|
def test_check_chromium():
|
|
ok, message = check_chromium()
|
|
|
|
assert isinstance(ok, bool)
|
|
assert isinstance(message, str)
|
|
|
|
|
|
def test_check_screenshot():
|
|
ok, message = check_screenshot()
|
|
|
|
assert isinstance(ok, bool)
|
|
assert isinstance(message, str)
|
|
|
|
|
|
def test_check_openai_key_exists(monkeypatch):
|
|
monkeypatch.setenv("OPENAI_API_KEY", "test-key")
|
|
|
|
ok, message = check_openai_key()
|
|
|
|
assert ok is True
|
|
assert "found" in message
|
|
|
|
|
|
def test_check_openai_key_missing(monkeypatch):
|
|
monkeypatch.delenv("OPENAI_API_KEY", raising=False)
|
|
|
|
ok, message = check_openai_key()
|
|
|
|
assert ok is False
|
|
assert "missing" in message
|
|
|
|
|
|
def test_plugin_manifests_exist(tmp_path, monkeypatch):
|
|
monkeypatch.chdir(tmp_path)
|
|
|
|
claude_dir = tmp_path / ".claude-plugin"
|
|
codex_dir = tmp_path / ".codex-plugin"
|
|
|
|
claude_dir.mkdir()
|
|
codex_dir.mkdir()
|
|
|
|
(claude_dir / "plugin.json").write_text("{}")
|
|
(codex_dir / "plugin.json").write_text("{}")
|
|
|
|
ok, message = check_plugin_manifests()
|
|
|
|
assert ok is True
|
|
assert "found" in message
|
|
|
|
|
|
def test_plugin_manifests_missing(tmp_path, monkeypatch):
|
|
monkeypatch.chdir(tmp_path)
|
|
|
|
ok, message = check_plugin_manifests()
|
|
|
|
assert ok is False
|
|
assert "missing" in message
|
|
|
|
|
|
def test_screenshot_file_cleanup():
|
|
screenshot_path = Path("doctor_test.png")
|
|
|
|
if screenshot_path.exists():
|
|
screenshot_path.unlink()
|
|
|
|
check_screenshot()
|
|
|
|
assert not screenshot_path.exists()
|