From 279105f11203d2b2225d301e0b2607de2a504ecd Mon Sep 17 00:00:00 2001 From: a2a-cloud Date: Tue, 9 Jun 2026 11:46:44 +0000 Subject: [PATCH] a2a-source-edit: write smoke_tests/test_render_scraper_script.py --- smoke_tests/test_render_scraper_script.py | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 smoke_tests/test_render_scraper_script.py diff --git a/smoke_tests/test_render_scraper_script.py b/smoke_tests/test_render_scraper_script.py new file mode 100644 index 0000000..16e0a14 --- /dev/null +++ b/smoke_tests/test_render_scraper_script.py @@ -0,0 +1,59 @@ +from __future__ import annotations + +import ast +import importlib.util +import re +from pathlib import Path + + +def _load_agent_module(): + 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 module + + +def _render_script() -> str: + module = _load_agent_module() + return module._render_scraper_script( + { + "url": "https://example.com/", + "selectors": {"title": "title"}, + "max_pages": 1, + "wait_seconds": 0, + "output_format": "json", + "headless": True, + "user_agent": "SmokeTest", + "respect_robots": True, + "rate_limit_seconds": 0, + "screenshot": False, + "output_dir": "/workspace/outputs/seleniumbase-website-scraper", + } + ) + + +def test_render_scraper_script_parses_as_python_35() -> None: + script = _render_script() + ast.parse(script, feature_version=(3, 5)) + + +def test_render_scraper_script_has_no_forbidden_modern_syntax_markers() -> None: + script = _render_script() + + numeric_underscore_literal = re.compile(r"(?