Skip to content

Commit

Permalink
fix: use TestWorker in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
zietzm committed Aug 23, 2024
1 parent 8a0efd3 commit 35c576a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
5 changes: 2 additions & 3 deletions src/webgwas_backend/test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
WebGWASResponse,
WebGWASResult,
)
from webgwas_backend.worker import Worker
from webgwas_backend.worker import TestWorker


def setup_db(session: Session, rootdir: pathlib.Path):
Expand Down Expand Up @@ -137,7 +137,7 @@ def client():
n_workers=2,
indirect_gwas=IndirectGWASSettings(batch_size=10000),
)
worker = Worker(settings)
worker = TestWorker(settings)

def get_worker_override():
return worker
Expand All @@ -146,7 +146,6 @@ def get_worker_override():
app.dependency_overrides[get_worker] = get_worker_override
with TestClient(app) as client:
yield client
worker.shutdown()


def test_get_cohorts(client):
Expand Down
21 changes: 21 additions & 0 deletions src/webgwas_backend/worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,24 @@ def get_results(self, request_id: str) -> WebGWASResult:
def shutdown(self):
self.executor.shutdown(wait=True, cancel_futures=True)
self.manager.shutdown()


class TestWorker(Worker):
__test__ = False

def __init__(self, settings: Settings):
self.s3_dry_run = settings.dry_run
self.s3_bucket = settings.s3_bucket
self.batch_size = settings.indirect_gwas.batch_size
self.id_to_result: dict[str, WebGWASResult] = {}

def submit(self, request: WebGWASRequestID):
logger.info(f"Submitting request: {request}")
result = self.handle_request(
request, self.s3_dry_run, self.s3_bucket, self.batch_size
)
self.id_to_result[request.id] = result
logger.info(f"Queued request: {request.id}")

def get_results(self, request_id: str) -> WebGWASResult:
return self.id_to_result[request_id]

0 comments on commit 35c576a

Please sign in to comment.