Add hassfest requirements validation (#39329)

This commit is contained in:
Martin Hjelmare 2020-09-06 23:41:41 +02:00 committed by GitHub
parent 41abc08d63
commit 8eed7110a1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 190 additions and 1 deletions

View file

@ -11,6 +11,7 @@ from . import (
dependencies,
json,
manifest,
requirements,
services,
ssdp,
translations,
@ -55,6 +56,11 @@ def get_config() -> Config:
type=valid_integration_path,
help="Validate a single integration",
)
parser.add_argument(
"--requirements",
action="store_true",
help="Validate requirements",
)
parsed = parser.parse_args()
if parsed.action is None:
@ -75,6 +81,7 @@ def get_config() -> Config:
root=pathlib.Path(".").absolute(),
specific_integrations=parsed.integration_path,
action=parsed.action,
requirements=parsed.requirements,
)
@ -86,7 +93,10 @@ def main():
print(err)
return 1
plugins = INTEGRATION_PLUGINS
plugins = [*INTEGRATION_PLUGINS]
if config.requirements:
plugins.append(requirements)
if config.specific_integrations:
integrations = {}
@ -104,6 +114,8 @@ def main():
try:
start = monotonic()
print(f"Validating {plugin.__name__.split('.')[-1]}...", end="", flush=True)
if plugin is requirements:
print()
plugin.validate(integrations, config)
print(" done in {:.2f}s".format(monotonic() - start))
except RuntimeError as err: