import re
import os
import sys
from pathlib import Path
def extract_code_blocks(markdown_path: Path) -> list[str]:
"""Extract python code blocks from markdown file."""
content = markdown_path.read_text()
pattern = r"```python\n(.*?)```"
return re.findall(pattern, content, re.DOTALL)
def test_readme_examples():
"""Test that python code blocks in README.md are valid syntax."""
readme_path = Path("README.md")
if not readme_path.exists():
pytest.skip("README.md not found")
code_blocks = extract_code_blocks(readme_path)
if not code_blocks:
print("No python blocks found in README")
return
for i, code in enumerate(code_blocks):
try:
compile(code, f"README_block_{i+1}", "exec")
except SyntaxError as e:
pytest.fail(f"Syntax error in README block {i+1}: {e}")
if __name__ == "__main__":
test_readme_examples()
print("README code blocks valid.")