python-kasa/devtools/check_readme_vs_fixtures.py

44 lines
866 B
Python

"""Script that checks if README.md is missing devices that have fixtures."""
import re
import sys
from kasa.tests.conftest import (
ALL_DEVICES,
BULBS,
DIMMERS,
LIGHT_STRIPS,
PLUGS,
STRIPS,
)
with open("README.md") as f:
readme = f.read()
typemap = {
"light strips": LIGHT_STRIPS,
"bulbs": BULBS,
"plugs": PLUGS,
"strips": STRIPS,
"dimmers": DIMMERS,
}
def _get_device_type(dev, typemap):
for typename, devs in typemap.items():
if dev in devs:
return typename
else:
return "Unknown type"
found_unlisted = False
for dev in ALL_DEVICES:
regex = rf"^\*.*\s{dev}"
match = re.search(regex, readme, re.MULTILINE)
if match is None:
print(f"{dev} not listed in {_get_device_type(dev, typemap)}")
found_unlisted = True
if found_unlisted:
sys.exit(-1)