checkout/tasks.py

85 lines
2.4 KiB
Python
Raw Normal View History

2022-04-24 15:51:25 +02:00
from pathlib import Path
from invoke import Context, task
BASE_DIR = Path(__file__).parent.resolve(strict=True)
SRC_DIR = BASE_DIR / "src"
COMPOSE_BUILD_FILE = BASE_DIR / "docker-compose-build.yaml"
COMPOSE_BUILD_ENV = {"COMPOSE_FILE": COMPOSE_BUILD_FILE}
2023-03-25 20:01:14 +01:00
TEST_ENV = {"ENV_FILE": BASE_DIR / "envs" / "test-envs.env"}
@task
2025-01-05 11:48:05 +01:00
def update_dependencies(ctx: Context):
2023-03-25 20:01:14 +01:00
with ctx.cd(BASE_DIR):
2025-01-05 11:48:05 +01:00
ctx.run("uv lock --upgrade", pty=True, echo=True)
2023-03-25 20:01:14 +01:00
@task
def sync_dependencies(ctx: Context):
with ctx.cd(BASE_DIR):
2025-01-05 11:48:05 +01:00
ctx.run("uv sync", pty=True, echo=True)
2022-04-24 15:51:25 +02:00
2022-04-26 18:19:53 +02:00
@task
def makemessages(ctx: Context) -> None:
with ctx.cd(SRC_DIR):
2023-04-02 18:32:35 +02:00
ctx.run(
"./manage.py makemessages -l en -l fr --add-location file",
pty=True,
echo=True,
)
2022-04-26 18:19:53 +02:00
@task
def compilemessages(ctx: Context) -> None:
with ctx.cd(SRC_DIR):
ctx.run("./manage.py compilemessages -l en -l fr", pty=True, echo=True)
2023-03-25 20:32:44 +01:00
@task(pre=[compilemessages])
2022-04-24 15:51:25 +02:00
def test(ctx: Context) -> None:
with ctx.cd(SRC_DIR):
ctx.run("pytest", pty=True, echo=True)
2023-03-25 20:32:44 +01:00
@task(pre=[compilemessages])
2022-04-24 15:51:25 +02:00
def test_cov(ctx: Context) -> None:
with ctx.cd(SRC_DIR):
ctx.run(
"pytest --cov=. --cov-branch --cov-report term-missing:skip-covered",
pty=True,
echo=True,
env={"COVERAGE_FILE": BASE_DIR / ".coverage"},
)
@task
def download_db(ctx: Context) -> None:
with ctx.cd(BASE_DIR):
2022-07-06 00:06:06 +02:00
ctx.run("scp ubuntu:/mnt/data/checkout/db/db.sqlite3 ./db/db.sqlite3")
2022-04-24 15:51:25 +02:00
ctx.run("rm -rf src/media/")
2022-07-06 00:06:06 +02:00
ctx.run("scp -r ubuntu:/mnt/data/checkout/media/ ./src/media")
2022-04-24 15:51:25 +02:00
with ctx.cd(SRC_DIR):
ctx.run("./manage.py changepassword gaugendre", pty=True)
2023-04-02 19:54:35 +02:00
@task
def update_fixtures(ctx: Context) -> None:
with ctx.cd(SRC_DIR):
ctx.run(
"./manage.py dumpdata purchase.Product purchase.ProductCategory --natural-primary --natural-foreign -o ./purchase/fixtures/products.json",
echo=True,
pty=True,
)
ctx.run(
"./manage.py dumpdata purchase.PaymentMethod --natural-primary --natural-foreign -o ./purchase/fixtures/payment_methods.json",
echo=True,
pty=True,
)
ctx.run(
"pre-commit run --files ./purchase/fixtures/products.json ./purchase/fixtures/payment_methods.json",
echo=True,
pty=True,
)