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:
@@ -1,6 +1,8 @@
|
|||||||
temporalio
|
temporalio
|
||||||
psycopg2-binary
|
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
|
asyncua==1.0.6
|
||||||
redis
|
redis
|
||||||
git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.12.2
|
git+ssh://git@github.com/Aignosi/sientia-dataops-library.git@1.12.2
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
temporalio
|
temporalio
|
||||||
psycopg2-binary
|
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
|
asyncua==1.0.6
|
||||||
redis
|
redis
|
||||||
sientia_do>=1.12.2
|
sientia_do>=1.12.2
|
||||||
|
|||||||
@@ -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.rmtree')
|
||||||
@patch('laborious.activities.mlflow.to_datetime')
|
@patch('laborious.activities.mlflow.to_datetime')
|
||||||
def test_retrain_model_success_data_success_retrain(
|
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)
|
mock_to_datetime.side_effect = lambda idx, **kwargs: pd.DatetimeIndex(idx)
|
||||||
|
|
||||||
mv_alias = MagicMock()
|
mv_alias = MagicMock()
|
||||||
@@ -428,9 +428,9 @@ def test_retrain_model_success_data_success_retrain(
|
|||||||
@patch('laborious.activities.mlflow.rmtree')
|
@patch('laborious.activities.mlflow.rmtree')
|
||||||
@patch('laborious.activities.mlflow.to_datetime')
|
@patch('laborious.activities.mlflow.to_datetime')
|
||||||
def test_retrain_model_success_with_payload_data(
|
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)
|
mock_to_datetime.side_effect = lambda idx, **kwargs: pd.DatetimeIndex(idx)
|
||||||
mv_alias = MagicMock(run_id='src')
|
mv_alias = MagicMock(run_id='src')
|
||||||
mlflow.mlflow_repository._client.get_model_version_by_alias.return_value = mv_alias
|
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.rmtree')
|
||||||
@patch('laborious.activities.mlflow.to_datetime')
|
@patch('laborious.activities.mlflow.to_datetime')
|
||||||
def test_retrain_model_always_uses_retrain_even_with_full_retrain_flag(
|
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)
|
mock_to_datetime.side_effect = lambda idx, **kwargs: pd.DatetimeIndex(idx)
|
||||||
mv_alias = MagicMock(run_id='src')
|
mv_alias = MagicMock(run_id='src')
|
||||||
mlflow.mlflow_repository._client.get_model_version_by_alias.return_value = mv_alias
|
mlflow.mlflow_repository._client.get_model_version_by_alias.return_value = mv_alias
|
||||||
|
|||||||
Reference in New Issue
Block a user