write smoke_tests/test_iterative_quotes_plan.py
This commit is contained in:
46
smoke_tests/test_iterative_quotes_plan.py
Normal file
46
smoke_tests/test_iterative_quotes_plan.py
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
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")
|
||||||
Reference in New Issue
Block a user