import os import re from pokedex.db.tables import mapped_classes def test_main_tables(): """Check that tables.py and main-tables.rst are in sync: every table should be documented, and every documented table should exist.""" main_tables_path = os.path.join(os.path.dirname(__file__), '../../doc/main-tables.rst') with open(main_tables_path) as f: doc_class_names = set( re.findall(r'^\.\. dex-table:: (\w+)$', f.read(), re.MULTILINE) ) mapped_class_names = set(cls.__name__ for cls in mapped_classes) # EXTRA ITEMS IN THE LEFT SET: tables defined but not documented # EXTRA ITEMS IN THE RIGHT SET: tables documented but not defined assert mapped_class_names == doc_class_names