from doctest import ELLIPSIS, NORMALIZE_WHITESPACE from pathlib import Path from sybil import Sybil from sybil.parsers.doctest import DocTestParser from sybil.parsers.skip import skip try: # >2.0.1 from sybil.parsers.codeblock import PythonCodeBlockParser except ImportError: from sybil.parsers.codeblock import CodeBlockParser as PythonCodeBlockParser from scrapy.http.response.html import HtmlResponse def load_response(url: str, filename: str) -> HtmlResponse: input_path = Path(__file__).parent / '_tests' / filename return HtmlResponse(url, body=input_path.read_bytes()) def setup(namespace): namespace['load_response'] = load_response pytest_collect_file = Sybil( parsers=[ DocTestParser(optionflags=ELLIPSIS | NORMALIZE_WHITESPACE), PythonCodeBlockParser(future_imports=['print_function']), skip, ], pattern='*.rst', setup=setup, ).pytest()