generated from AgnostiqHQ/covalent-executor-template
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Changed functional tests to use pytest, using .env config for executor (
#50) * Changed functional tests to use pytest, using .env config for executor instance * updated functional test script names to have suffix _test * updated ecs executor import in functional test * added .env.example * updated functional test assertion * added functional tests readme * added AWS_PROFILE to .env.example * added pytest-xdist as test requirement * not running functional tests in test workflow * Updated changelog * moved ft test imports to inside test * Updated ft README
- Loading branch information
1 parent
79b65f2
commit 7024f09
Showing
14 changed files
with
164 additions
and
219 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
AWS_PROFILE=default | ||
|
||
executor_ecs_cluster_name= | ||
executor_ecs_task_execution_role_name= | ||
executor_ecs_task_family_name= | ||
executor_ecs_task_log_group_name= | ||
executor_ecs_task_role_name= | ||
executor_ecs_task_security_group_id= | ||
executor_ecs_task_subnet_id= | ||
executor_s3_bucket_name= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
## Functional Test Instructions | ||
|
||
### 1.Setup | ||
|
||
In the project root run the following: | ||
|
||
```sh | ||
pip install -r ./tests/requirements.txt | ||
pip install -r ./tests/functional_tests/requirements.txt | ||
export PYTHONPATH=$(pwd) | ||
``` | ||
|
||
Copy create `.env` file: | ||
|
||
```sh | ||
cp .env.example .env | ||
``` | ||
|
||
Fill in the configuration values either manually or from terraform output. | ||
|
||
### 2. Run Functional Tests | ||
|
||
```sh | ||
pytest -vvs -m functional_tests | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
from dotenv import load_dotenv | ||
|
||
load_dotenv() | ||
|
||
import os | ||
|
||
from covalent_ecs_plugin.ecs import ECSExecutor | ||
|
||
executor_config = { | ||
"s3_bucket_name": os.getenv("executor_s3_bucket_name"), | ||
"ecr_repo_name": os.getenv("executor_ecr_repo_name"), | ||
"ecs_cluster_name": os.getenv("executor_ecs_cluster_name"), | ||
"ecs_task_family_name": os.getenv("executor_ecs_task_family_name"), | ||
"ecs_task_execution_role_name": os.getenv("executor_ecs_task_execution_role_name"), | ||
"ecs_task_role_name": os.getenv("executor_ecs_task_role_name"), | ||
"ecs_task_log_group_name": os.getenv("executor_ecs_task_log_group_name"), | ||
"ecs_task_subnet_id": os.getenv("executor_ecs_task_subnet_id"), | ||
"ecs_task_security_group_id": os.getenv("executor_ecs_task_security_group_id"), | ||
"vcpu": os.getenv("executor_vcpu", 0.25), | ||
"memory": os.getenv("executor_memory", 0.5), | ||
"cache_dir": "/tmp/covalent", | ||
} | ||
|
||
print("Using Executor Configuration:") | ||
print(executor_config) | ||
|
||
executor = ECSExecutor(**executor_config) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
numpy==1.23.2 | ||
python-dotenv==0.21.0 | ||
scikit-learn==1.1.2 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# Copyright 2021 Agnostiq Inc. | ||
# | ||
# This file is part of Covalent. | ||
# | ||
# Licensed under the GNU Affero General Public License 3.0 (the "License"). | ||
# A copy of the License may be obtained with this software package or at | ||
# | ||
# https://www.gnu.org/licenses/agpl-3.0.en.html | ||
# | ||
# Use of this file is prohibited except in compliance with the License. Any | ||
# modifications or derivative works of this file must retain this copyright | ||
# notice, and modified files must contain a notice indicating that they have | ||
# been altered from the originals. | ||
# | ||
# Covalent is distributed in the hope that it will be useful, but WITHOUT | ||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
# FITNESS FOR A PARTICULAR PURPOSE. See the License for more details. | ||
# | ||
# Relief from the License may be granted by purchasing a commercial license. | ||
|
||
|
||
import covalent as ct | ||
import pytest | ||
|
||
from tests.functional_tests.fixtures.executor import executor | ||
|
||
deps_pip = ct.DepsPip(packages=["numpy==1.22.4", "scikit-learn==1.1.2"]) | ||
|
||
|
||
@pytest.mark.functional_tests | ||
def test_svm_worklow(): | ||
from numpy.random import permutation | ||
from sklearn import datasets, svm | ||
|
||
@ct.electron | ||
def load_data(): | ||
iris = datasets.load_iris() | ||
perm = permutation(iris.target.size) | ||
iris.data = iris.data[perm] | ||
iris.target = iris.target[perm] | ||
return iris.data, iris.target | ||
|
||
@ct.electron(executor=executor, deps_pip=deps_pip) | ||
def train_svm(data, C, gamma): | ||
X, y = data | ||
clf = svm.SVC(C=C, gamma=gamma) | ||
clf.fit(X[90:], y[90:]) | ||
return clf | ||
|
||
@ct.electron | ||
def score_svm(data, clf): | ||
X_test, y_test = data | ||
return clf.score(X_test[:90], y_test[:90]) | ||
|
||
@ct.lattice | ||
def run_experiment(C=1.0, gamma=0.7): | ||
data = load_data() | ||
clf = train_svm(data=data, C=C, gamma=gamma) | ||
score = score_svm(data=data, clf=clf) | ||
return score | ||
|
||
dispatchable_func = ct.dispatch(run_experiment) | ||
|
||
dispatch_id = dispatchable_func(C=1.0, gamma=0.7) | ||
result = ct.get_result(dispatch_id=dispatch_id, wait=True) | ||
status = str(result.status) | ||
|
||
print(result) | ||
|
||
assert status == str(ct.status.COMPLETED) |
Oops, something went wrong.