""" A set of `invoke` helper commands used for this project. """ from invoke import task @task def start_app(docs=False, extra=""): """Starts the app.""" print("Start the app") if docs: print(f"Building docs. Docs value: {extra}") @task def run_unit_tests(c): """Triggers a local unittest run for the app.""" # Pytest will hide color output when it thinks it's running # outside of a terminal therefore pty=True is used. c.run("python3 -m pytest -vvv tests/unit", pty=True) @task def fix_eof(c): """Fixes any missing newlines for end of files.""" c.run("pre-commit run end-of-file-fixer --all-files", pty=True) @task def start_rabbit(c): """Runs the RabbitMQ integration environment.""" print("Starting RabbitMQ") start_app(c) c.run("docker compose -f docker-compose-rabbit.yml up -d") @task def stop_rabbit(c): """Stops the RabbitMQ integration environent.""" print("Stopping RabbitMQ") c.run("docker compose -f docker-compose-rabbit.yml down") @task def start_redis(c): """Runs the Redis integration environment.""" print("Starting Redis") c.run("docker compose -f docker-compose-redis.yml up -d") @task def stop_redis(c): """Stops the Redis integration environent.""" print("Stopping Redis") c.run("docker compose -f docker-compose-redis.yml down") # TODO add docker build, tag, and push command for app