# Configuration for pytest to automatically collect types. | |
# Thanks to Guilherme Salgado. | |
import pytest | |
try: | |
import pyannotate_runtime | |
PYANOTATE_PRESENT = True | |
except ImportError: | |
PYANOTATE_PRESENT = False | |
if PYANOTATE_PRESENT: | |
def pytest_collection_finish(session): | |
"""Handle the pytest collection finish hook: configure pyannotate. | |
Explicitly delay importing `collect_types` until all tests have | |
been collected. This gives gevent a chance to monkey patch the | |
world before importing pyannotate. | |
""" | |
from pyannotate_runtime import collect_types | |
collect_types.init_types_collection() | |
def collect_types_fixture(): | |
from pyannotate_runtime import collect_types | |
collect_types.resume() | |
yield | |
collect_types.pause() | |
def pytest_sessionfinish(session, exitstatus): | |
from pyannotate_runtime import collect_types | |
collect_types.dump_stats("type_info.json") | |