d582f15681
- Implemented tests for import polling functionality, ensuring correct behavior for active and terminal import statuses. - Created tests for the login page, validating user interactions and error handling. - Added unit tests for money utility functions, covering parsing, formatting, and summation of monetary values. - Developed tests for query keys, ensuring proper scoping and invalidation roots. chore: setup testing environment and configuration - Added setup file for testing with Vitest and Testing Library. - Configured TypeScript and Vite for the frontend project. - Created Docker and Nginx configurations for local development and production environments. - Established a PostgreSQL initialization script for setting up application roles. docs: add README and environment configuration for infra - Included README for the infra directory, detailing local development setup and service descriptions. - Created an example environment configuration file for local development with placeholders for sensitive information.
23 lines
790 B
Python
23 lines
790 B
Python
import uuid
|
|
|
|
from app.imports.celery_app import celery_app
|
|
|
|
|
|
@celery_app.task(name="imports.process_statement", bind=True, max_retries=3, default_retry_delay=10)
|
|
def process_statement_task(self, document_id: str, space_id: str) -> str:
|
|
from app.imports.service import process_statement_document
|
|
|
|
try:
|
|
status = process_statement_document(uuid.UUID(document_id), uuid.UUID(space_id))
|
|
if status == "failed":
|
|
raise RuntimeError("statement parsing failed")
|
|
except Exception as exc:
|
|
if self.request.retries < 3:
|
|
raise self.retry(exc=exc) from exc
|
|
raise
|
|
return document_id
|
|
|
|
|
|
def enqueue_process_statement(document_id: uuid.UUID, space_id: uuid.UUID) -> None:
|
|
process_statement_task.delay(str(document_id), str(space_id))
|