Code import - branch release/SIENTIAPDE-1646
This commit is contained in:
66
tests/conftest.py
Normal file
66
tests/conftest.py
Normal file
@@ -0,0 +1,66 @@
|
||||
import os
|
||||
|
||||
from sientia_do.temporal.activities.postgres_sync import Postgres
|
||||
|
||||
|
||||
def _noop_postgres_del(_self):
|
||||
"""
|
||||
Unit tests use MagicMock metrics controllers; postgres_sync.Postgres.__del__ calls
|
||||
close() during GC and triggers async shutdown. Explicit ``close()`` is covered in tests.
|
||||
"""
|
||||
return None
|
||||
|
||||
|
||||
Postgres.__del__ = _noop_postgres_del # type: ignore[method-assign]
|
||||
|
||||
# The production code converts SIENTIA_MINIO_OFFLOAD_THRESHOLD_MEGABYTES to int at import-time.
|
||||
# Tests must set it to a valid integer string to avoid import errors.
|
||||
os.environ.setdefault('SIENTIA_MINIO_OFFLOAD_THRESHOLD_MEGABYTES', '1')
|
||||
|
||||
|
||||
class DummyMinioDataFramePayload:
|
||||
"""
|
||||
Minimal payload double used by unit tests.
|
||||
|
||||
The production workflow/gates expect a MinioDataFramePayload-like object with:
|
||||
- async retrieve(minio_repo, workflow_metadata) -> DataFrame | dict
|
||||
- has_data() -> bool
|
||||
- cleanup_prefix() -> str | None
|
||||
- last_timestamp: attribute
|
||||
- status: attribute
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
*,
|
||||
retrieve_return=None,
|
||||
has_data: bool = True,
|
||||
cleanup_prefix: str | None = None,
|
||||
last_timestamp: str = '2024-01-01',
|
||||
status: dict | None = None,
|
||||
):
|
||||
self._retrieve_return = retrieve_return
|
||||
self._has_data = has_data
|
||||
self._cleanup_prefix = cleanup_prefix
|
||||
self.last_timestamp = last_timestamp
|
||||
self.status = status
|
||||
|
||||
async def retrieve(self, _minio_repo, _workflow_metadata=None):
|
||||
return self._retrieve_return
|
||||
|
||||
def has_data(self) -> bool:
|
||||
return self._has_data
|
||||
|
||||
def cleanup_prefix(self) -> str | None:
|
||||
return self._cleanup_prefix
|
||||
|
||||
|
||||
"""
|
||||
Pytest configuration file with global mocks for external dependencies.
|
||||
|
||||
The historical ``sientia`` package is no longer imported by the codebase;
|
||||
drift analysis lives in ``sientia_model.analytics.drift_analysis`` and is
|
||||
imported lazily inside Temporal activities. No global module-level mock is
|
||||
required here — unit tests that need to control ``DriftAnalysis`` outputs
|
||||
should patch ``laborious.activities.model_metrics.DriftAnalysis`` directly.
|
||||
"""
|
||||
Reference in New Issue
Block a user