Files
seleniumbase-website-scraper/smoke_tests/test_iterative_quotes_plan.py

47 lines
1.2 KiB
Python

from __future__ import annotations
import inspect
from pathlib import Path
def _load_agent_class():
import importlib.util
agent_path = Path(__file__).resolve().parents[1] / "agent.py"
spec = importlib.util.spec_from_file_location("agent", agent_path)
assert spec is not None and spec.loader is not None
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
return getattr(module, "SeleniumbaseWebsiteScraper")
def test_iterative_signature_has_required_params() -> None:
Agent = _load_agent_class()
fn = getattr(Agent, "iterative_scrape_goal")
sig = inspect.signature(fn)
params = set(sig.parameters.keys())
# skill method signature includes (self, ctx, ...)
required = {
"ctx",
"goal",
"start_url",
"allowed_domains",
"seed_selectors",
"max_steps",
"max_pages",
"max_runtime_seconds",
"wait_seconds",
"output_format",
"headless",
"user_agent",
"respect_robots",
"rate_limit_seconds",
"screenshot",
}
assert required.issubset(params)
if __name__ == "__main__":
test_iterative_signature_has_required_params()
print("iterative signature smoke ok")