From 2daec5902d8c1c96b856e9f206c26ba1c1e4da4a Mon Sep 17 00:00:00 2001 From: Sophia Castellarin Date: Fri, 1 Nov 2024 14:09:21 -0700 Subject: [PATCH] Move build to worker (#945) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .../_internal/{ => worker}/build.py | 0 .../_internal/worker/tasks.py | 4 +- .../tests/_internal/worker/test_build.py | 44 +++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) rename conda-store-server/conda_store_server/_internal/{ => worker}/build.py (100%) create mode 100644 conda-store-server/tests/_internal/worker/test_build.py diff --git a/conda-store-server/conda_store_server/_internal/build.py b/conda-store-server/conda_store_server/_internal/worker/build.py similarity index 100% rename from conda-store-server/conda_store_server/_internal/build.py rename to conda-store-server/conda_store_server/_internal/worker/build.py diff --git a/conda-store-server/conda_store_server/_internal/worker/tasks.py b/conda-store-server/conda_store_server/_internal/worker/tasks.py index 78c9a60d8..e1005e8f8 100644 --- a/conda-store-server/conda_store_server/_internal/worker/tasks.py +++ b/conda-store-server/conda_store_server/_internal/worker/tasks.py @@ -17,7 +17,8 @@ from conda_store_server import api from conda_store_server._internal import environment, schema, utils -from conda_store_server._internal.build import ( +from conda_store_server._internal.worker.app import CondaStoreWorker +from conda_store_server._internal.worker.build import ( build_cleanup, build_conda_docker, build_conda_env_export, @@ -26,7 +27,6 @@ build_constructor_installer, solve_conda_environment, ) -from conda_store_server._internal.worker.app import CondaStoreWorker @worker_ready.connect diff --git a/conda-store-server/tests/_internal/worker/test_build.py b/conda-store-server/tests/_internal/worker/test_build.py new file mode 100644 index 000000000..347aac9e5 --- /dev/null +++ b/conda-store-server/tests/_internal/worker/test_build.py @@ -0,0 +1,44 @@ +# Copyright (c) conda-store development team. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +from conda_store_server import api +from conda_store_server._internal import schema +from conda_store_server._internal.worker import build + + +def test_build_started(db, seed_conda_store): + test_build = api.get_build(db, build_id=4) + assert test_build.status != schema.BuildStatus.BUILDING + build.set_build_started(db, test_build) + test_build = api.get_build(db, build_id=4) + assert test_build.status == schema.BuildStatus.BUILDING + + +def test_build_failed(db, seed_conda_store): + test_build = api.get_build(db, build_id=4) + assert test_build.status != schema.BuildStatus.FAILED + build.set_build_failed(db, test_build) + test_build = api.get_build(db, build_id=4) + assert test_build.status == schema.BuildStatus.FAILED + + +def test_build_canceled(db, seed_conda_store): + test_build = api.get_build(db, build_id=4) + assert test_build.status != schema.BuildStatus.CANCELED + build.set_build_canceled(db, test_build) + test_build = api.get_build(db, build_id=4) + assert test_build.status == schema.BuildStatus.CANCELED + + +def test_build_completed(db, conda_store, seed_conda_store): + test_build = api.get_build(db, build_id=2) + assert test_build.status != schema.BuildStatus.COMPLETED + build.set_build_completed(db, conda_store, test_build) + test_build = api.get_build(db, build_id=2) + assert test_build.status == schema.BuildStatus.COMPLETED + assert test_build.environment.current_build == test_build + build_artifact = api.get_build_artifact( + db, 2, str(test_build.build_path(conda_store)) + ) + assert build_artifact is not None