SIENTIAPDE-1646

Pin sqlalchemy<2.1 to fix psycopg driver break; use tmp_path in retrain

- sqlalchemy 2.1 defaults postgresql:// URLs to psycopg (v3), but sientia_do
  only ships psycopg2-binary, breaking with "No module named psycopg"
- Replace hardcoded 'tmp' mkdtemp mock with pytest tmp_path fixture in
  retrain_model tests to avoid writing to a fake path
This commit is contained in:
2026-09-25 11:58:55 -03:00
parent 26e37e0a0a
commit 9fb81ef556
3 changed files with 12 additions and 8 deletions

View File

@@ -1,6 +1,8 @@
temporalio
psycopg2-binary
sqlalchemy
# SQLAlchemy 2.1 makes psycopg (v3) the default driver for postgresql:// URLs; sientia_do
# builds that URL and ships only psycopg2-binary, so 2.1 fails with "No module named psycopg".
sqlalchemy<2.1
asyncua==1.0.6
redis
git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.12.2

View File

@@ -1,6 +1,8 @@
temporalio
psycopg2-binary
sqlalchemy
# SQLAlchemy 2.1 makes psycopg (v3) the default driver for postgresql:// URLs; sientia_do
# builds that URL and ships only psycopg2-binary, so 2.1 fails with "No module named psycopg".
sqlalchemy<2.1
asyncua==1.0.6
redis
sientia_do>=1.12.2

View File

@@ -375,9 +375,9 @@ def test_request_predict_failure(mock_to_datetime, mock_from_dataframe, mlflow):
@patch('laborious.activities.mlflow.rmtree')
@patch('laborious.activities.mlflow.to_datetime')
def test_retrain_model_success_data_success_retrain(
mock_to_datetime, mock_rmtree, mock_mkdtemp, mock_log_artifact, mlflow
mock_to_datetime, mock_rmtree, mock_mkdtemp, mock_log_artifact, mlflow, tmp_path
):
mock_mkdtemp.return_value = 'tmp'
mock_mkdtemp.return_value = str(tmp_path)
mock_to_datetime.side_effect = lambda idx, **kwargs: pd.DatetimeIndex(idx)
mv_alias = MagicMock()
@@ -428,9 +428,9 @@ def test_retrain_model_success_data_success_retrain(
@patch('laborious.activities.mlflow.rmtree')
@patch('laborious.activities.mlflow.to_datetime')
def test_retrain_model_success_with_payload_data(
mock_to_datetime, mock_rmtree, mock_mkdtemp, mock_log_artifact, mlflow
mock_to_datetime, mock_rmtree, mock_mkdtemp, mock_log_artifact, mlflow, tmp_path
):
mock_mkdtemp.return_value = 'tmp'
mock_mkdtemp.return_value = str(tmp_path)
mock_to_datetime.side_effect = lambda idx, **kwargs: pd.DatetimeIndex(idx)
mv_alias = MagicMock(run_id='src')
mlflow.mlflow_repository._client.get_model_version_by_alias.return_value = mv_alias
@@ -473,9 +473,9 @@ def test_retrain_model_success_with_payload_data(
@patch('laborious.activities.mlflow.rmtree')
@patch('laborious.activities.mlflow.to_datetime')
def test_retrain_model_always_uses_retrain_even_with_full_retrain_flag(
mock_to_datetime, mock_rmtree, mock_mkdtemp, mock_log_artifact, mlflow
mock_to_datetime, mock_rmtree, mock_mkdtemp, mock_log_artifact, mlflow, tmp_path
):
mock_mkdtemp.return_value = 'tmp'
mock_mkdtemp.return_value = str(tmp_path)
mock_to_datetime.side_effect = lambda idx, **kwargs: pd.DatetimeIndex(idx)
mv_alias = MagicMock(run_id='src')
mlflow.mlflow_repository._client.get_model_version_by_alias.return_value = mv_alias