Skip to content

Commit

Permalink
Separate job_flows into two files
Browse files Browse the repository at this point in the history
  • Loading branch information
flopez7 committed Aug 16, 2023
1 parent 8eb942d commit abff019
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 25 deletions.
7 changes: 4 additions & 3 deletions packages/examples/cvat/exchange-oracle/alembic/env.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
from src.models.cvat import Task, Job
from src.models.webhook import Webhook
from src.db import Base
from logging.config import fileConfig

from sqlalchemy import engine_from_config
Expand All @@ -26,6 +23,10 @@
# from myapp import mymodel
# target_metadata = mymodel.Base.metadata

from src.models.cvat import Task, Job
from src.models.webhook import Webhook
from src.db import Base

target_metadata = Base.metadata

# other values from the config, defined by the needs of env.py,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
from src.db import SessionLocal
from src.core.config import CronConfig

from src.cvat.job_flows import job_creation_process, revert_job_creation
from src.cvat.create_job import job_creation_process
from src.cvat.revert_job import revert_job_creation
from src.chain.escrow import get_escrow_manifest, validate_escrow

from src.core.constants import OracleWebhookTypes
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,3 @@ def job_creation_process(escrow_address: str, chain_id: int, manifest: dict) ->

# Actual job creation on CVAT. Async process (will be created in DB once 'update:task' or 'update:job' webhook is received)
cvat_api.put_task_data(task.id, cloudstorage.id)


def revert_job_creation(escrow_address: str) -> None:
with SessionLocal.begin() as session:
project = db_service.get_project_by_escrow_address(session, escrow_address)
if project is not None:
if project.cvat_cloudstorage_id:
cvat_api.delete_cloustorage(project.cvat_cloudstorage_id)
if project.cvat_id:
cvat_api.delete_project(project.cvat_id)
db_service.delete_project(session, project.id)
session.commit()
16 changes: 16 additions & 0 deletions packages/examples/cvat/exchange-oracle/src/cvat/revert_job.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from src.db import SessionLocal

import src.services.cvat as db_service
import src.cvat.api_calls as cvat_api


def revert_job_creation(escrow_address: str) -> None:
with SessionLocal.begin() as session:
project = db_service.get_project_by_escrow_address(session, escrow_address)
if project is not None:
if project.cvat_cloudstorage_id:
cvat_api.delete_cloustorage(project.cvat_cloudstorage_id)
if project.cvat_id:
cvat_api.delete_project(project.cvat_id)
db_service.delete_project(session, project.id)
session.commit()
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def setUp(self):
def tearDown(self):
self.session.close()

@patch("src.cvat.job_flows.cvat_api")
@patch("src.cvat.create_job.cvat_api")
def test_process_job_launcher_webhooks_successful(self, mock_cvat_api):

mock_cvat_api.create_cloudstorage.return_value.id = 1
Expand Down Expand Up @@ -185,7 +185,7 @@ def test_process_job_launcher_webhooks_invalid_manifest_url(self):
in cm.output[0],
)

@patch("src.cvat.job_flows.cvat_api")
@patch("src.cvat.create_job.cvat_api")
def test_process_job_launcher_webhooks_invalid_cloudstorage(self, mock_cvat_api):
mock_cvat_api.create_cloudstorage.side_effect = Exception("Connection error")
chain_id = Networks.localhost.value
Expand Down Expand Up @@ -223,7 +223,7 @@ def test_process_job_launcher_webhooks_invalid_cloudstorage(self, mock_cvat_api)
],
)

@patch("src.cvat.job_flows.cvat_api")
@patch("src.cvat.create_job.cvat_api")
def test_process_job_launcher_webhooks_invalid_project(self, mock_cvat_api):
mock_cvat_api.create_cloudstorage.return_value.id = 1
mock_cvat_api.create_project.side_effect = Exception("Connection error")
Expand Down Expand Up @@ -262,11 +262,14 @@ def test_process_job_launcher_webhooks_invalid_project(self, mock_cvat_api):
],
)

@patch("src.cvat.job_flows.cvat_api")
def test_process_job_launcher_webhooks_invalid_task(self, mock_cvat_api):
mock_cvat_api.create_cloudstorage.return_value.id = 1
mock_cvat_api.create_project.return_value.id = 1
mock_cvat_api.create_task.side_effect = Exception("Connection error")
@patch("src.cvat.revert_job.cvat_api")
@patch("src.cvat.create_job.cvat_api")
def test_process_job_launcher_webhooks_invalid_task(
self, mock_create_cvat_api, mock_revert_cvat_api
):
mock_create_cvat_api.create_cloudstorage.return_value.id = 1
mock_create_cvat_api.create_project.return_value.id = 1
mock_create_cvat_api.create_task.side_effect = Exception("Connection error")
chain_id = Networks.localhost.value
escrow_address = create_escrow(self.w3)
fund_escrow(self.w3, escrow_address)
Expand Down Expand Up @@ -296,7 +299,8 @@ def test_process_job_launcher_webhooks_invalid_task(self, mock_cvat_api):
project = (
self.session.execute(
select(Project).where(
Project.cvat_id == mock_cvat_api.create_project.return_value.id
Project.cvat_id
== mock_create_cvat_api.create_project.return_value.id
)
)
.scalars()
Expand Down

0 comments on commit abff019

Please sign in to comment.