6.3 KiB
6.3 KiB
E2E Test Scenarios
This document maps the workflow scenarios tested in the E2E suite to their corresponding JSON input files and expected behaviors.
Infrastructure (second-pass review)
- Containers: PostgreSQL, MinIO, MongoDB, and Gitea via testcontainers; real clients and
Activitiescode paths. - MLflow:
file://tracking URI (real SDK, no remote server). - Temporal:
WorkflowEnvironment.start_time_skipping()— official temporalio test runtime; workflows and activities are not stubbed. - Logging/metrics:
get_logger+MetricsController(sientia_do); nounittest.mockfor observability ine2e/conftest.py. - Unit tests under
tests/may still use mocks where appropriate; that policy is separate from this E2E suite.
1. TrainModel Workflow (test_train_model_workflow.py)
1.1 Happy Paths (Successful execution)
| Test Function | Input JSON | Expected Status | Description |
|---|---|---|---|
test_scenario_1_1_1_linear_regression_basic |
01-linear-regression-basic.json |
TRAINING_SUCCESS |
Basic linear regression without scaler. Verifies end-to-end pipeline. |
test_scenario_1_1_2_linear_regression_with_scaler |
02-linear-regression-with-scaler.json |
TRAINING_SUCCESS |
Linear regression with Standard Scaler. |
test_scenario_1_1_3_polynomial_regression_degree2_with_scaler |
03-polynomial-regression-degree2.json |
TRAINING_SUCCESS |
Polynomial regression (degree 2) with Standard Scaler. |
test_scenario_1_1_4_polynomial_regression_degree3_with_scaler |
04-polynomial-regression-degree3.json |
TRAINING_SUCCESS |
Polynomial regression (degree 3) with Standard Scaler. |
test_scenario_1_1_5_linear_regression_with_lags |
05-linear-regression-with-lags.json |
TRAINING_SUCCESS |
Linear regression with lag_train/lag_val per variable. |
test_scenario_1_1_6_linear_regression_nan_interpolation |
06-linear-regression-nan-interpolation.json |
TRAINING_SUCCESS |
Linear regression with nan_treatment='linear interpolation'. |
test_scenario_1_1_7_linear_regression_static_window_removal |
07-linear-regression-static-window-removal.json |
TRAINING_SUCCESS |
rem_static_win=true with default static_threshold. |
test_scenario_1_1_8_linear_regression_with_limits |
08-linear-regression-with-limits.json |
TRAINING_SUCCESS |
support_filters with min/max per variable. |
test_scenario_1_1_9_polynomial_degree2_scaler_and_lags |
09-polynomial-degree2-with-scaler-and-lags.json |
TRAINING_SUCCESS |
Polynomial (degree 2), Standard Scaler, and lags. |
test_scenario_1_1_10_linear_regression_with_ar_opt_params |
10-linear-regression-with-ar.json |
TRAINING_SUCCESS |
opt_params.include_ar=true (placeholder for future AR behavior). |
test_scenario_1_1_11_linear_regression_static_threshold_custom |
11-linear-regression-static-threshold-custom.json |
TRAINING_SUCCESS |
rem_static_win=true with custom static_threshold. |
test_scenario_1_1_12_alternate_date_format_dd_mm_yyyy |
12-angular-test-date-format.json |
TRAINING_SUCCESS |
date_column=DATA, dd/MM/yyyy format, object training_data_dd_mm_yyyy.csv. |
test_scenario_1_1_13_alternate_csv_narrow_date_window |
13-angular-test-double-date-column.json |
TRAINING_SUCCESS |
Same alternate CSV with a bounded start_date/end_date window. |
test_scenario_1_1_14_polynomial_with_support_filters |
14-angular-test-polynomial-support-filters.json |
TRAINING_SUCCESS |
Polynomial (degree 4), scaler, upper_line/lower_line support filters. |
test_scenario_1_1_15_linear_regression_custom_target_column_name |
15-linear-regression-custom-target-column.json |
TRAINING_SUCCESS |
Custom target_variable column name (not literal target); Evidently/report columns must match. |
test_scenario_1_1_16_naive_timestamp_header_column |
16-linear-regression-naive-timestamp-header.json |
TRAINING_SUCCESS |
date_column=Timestamp, naive CSV training_data_timestamp_naive.csv. |
test_scenario_1_1_17_linear_regression_blank_timestamp_row_dropped |
17-linear-regression-blank-timestamp-row.json |
TRAINING_SUCCESS |
One empty timestamp cell; row dropped before index. |
1.2 Error Paths
| Test Function | Input JSON | Expected Status | Description |
|---|---|---|---|
test_scenario_1_2_1_minio_file_not_found |
01-linear-regression-basic.json |
TRAINING_ERROR |
MinIO file does not exist. Workflow fails during file download. |
test_scenario_1_2_2_experiment_run_id_not_in_db |
01-linear-regression-basic.json |
N/A (raises Exception) | experiment_run_id does not exist in DB. Workflow fails immediately on status update attempt. |
2. Parameter Validation (test_train_model_validation.py)
These scenarios test the business rule validations inside validate_train_params. All are expected to terminate with ORCHESTRATOR_VALIDATION_ERROR.
| Test Function | Modification | Expected Error Substring |
|---|---|---|
test_scenario_2_1_1_train_size_out_of_range |
train_size = 5 |
'train_size' |
test_scenario_2_1_2_empty_variable_columns |
variable_columns = [] |
'variable_columns' |
test_scenario_2_1_3_invalid_date_format |
date_format = 'INVALID' |
'date_format' |
test_scenario_2_1_4_whitespace_only_model_name |
model_name = ' ' |
'model_name' |
test_scenario_2_1_5_unknown_model_type |
model_type = 'totally_unknown_model' |
'totally_unknown_model' |
test_scenario_2_1_6_missing_target_variable |
target_variable = '' |
'target_variable' |
test_scenario_2_1_7_missing_experiment_run_id |
Missing experiment_run_id |
N/A (raises ValueError immediately) |
test_scenario_2_1_8_missing_date_column |
Missing date_column |
N/A (raises ValueError immediately) |
test_scenario_2_1_9_whitespace_date_column |
date_column = ' ' |
'date_column' |
3. CleanupFiles Workflow (test_cleanup_files_workflow.py)
| Test Function | Description |
|---|---|
test_scenario_3_1_1_cleanup_with_no_temp_dirs |
Temp directory is empty. Activity completes without error. |
test_scenario_3_1_2_cleanup_removes_old_temp_dirs |
Two stale directories matching name_YYYYMMDD_HHMMSS_microseconds are removed when older than retention. |
test_scenario_3_1_3_cleanup_nonexistent_temp_path |
Target path does not exist. Handled gracefully without error. |