80 lines
3.7 KiB
Python
80 lines
3.7 KiB
Python
"""Unit tests for ExperimentStatus enum."""
|
|
|
|
from model_manager.utils.models.experiment_status import ExperimentStatus
|
|
|
|
|
|
def test_experiment_status_values():
|
|
"""Test that all expected status values exist."""
|
|
assert ExperimentStatus.MAGE_WAITING_PROC == 'MAGE_WAITING_PROC'
|
|
assert ExperimentStatus.TRAINING_SUCCESS == 'TRAINING_SUCCESS'
|
|
assert ExperimentStatus.TRAINING_ERROR == 'TRAINING_ERROR'
|
|
assert ExperimentStatus.MLFLOW_SENT == 'MLFLOW_SENT'
|
|
assert ExperimentStatus.MLFLOW_SEND_ERROR == 'MLFLOW_SEND_ERROR'
|
|
assert ExperimentStatus.FILE_DELETED == 'FILE_DELETED'
|
|
assert ExperimentStatus.FILE_DELETE_ERROR == 'FILE_DELETE_ERROR'
|
|
|
|
|
|
def test_experiment_status_count():
|
|
"""Test that enum has exactly 7 status values."""
|
|
assert len(ExperimentStatus) == 7
|
|
|
|
|
|
def test_experiment_status_is_string():
|
|
"""Test that enum values are strings."""
|
|
for status in ExperimentStatus:
|
|
assert isinstance(status.value, str)
|
|
assert isinstance(status, str)
|
|
|
|
|
|
def test_experiment_status_membership():
|
|
"""Test membership checks for status values."""
|
|
assert 'MAGE_WAITING_PROC' in [s.value for s in ExperimentStatus]
|
|
assert 'TRAINING_SUCCESS' in [s.value for s in ExperimentStatus]
|
|
assert 'TRAINING_ERROR' in [s.value for s in ExperimentStatus]
|
|
assert 'MLFLOW_SENT' in [s.value for s in ExperimentStatus]
|
|
assert 'MLFLOW_SEND_ERROR' in [s.value for s in ExperimentStatus]
|
|
assert 'FILE_DELETED' in [s.value for s in ExperimentStatus]
|
|
assert 'FILE_DELETE_ERROR' in [s.value for s in ExperimentStatus]
|
|
|
|
|
|
def test_experiment_status_iteration():
|
|
"""Test that enum can be iterated."""
|
|
statuses = list(ExperimentStatus)
|
|
assert len(statuses) == 7
|
|
assert ExperimentStatus.MAGE_WAITING_PROC in statuses
|
|
assert ExperimentStatus.TRAINING_SUCCESS in statuses
|
|
assert ExperimentStatus.TRAINING_ERROR in statuses
|
|
assert ExperimentStatus.MLFLOW_SENT in statuses
|
|
assert ExperimentStatus.MLFLOW_SEND_ERROR in statuses
|
|
assert ExperimentStatus.FILE_DELETED in statuses
|
|
assert ExperimentStatus.FILE_DELETE_ERROR in statuses
|
|
|
|
|
|
def test_experiment_status_comparison():
|
|
"""Test that enum values can be compared with strings."""
|
|
assert ExperimentStatus.MAGE_WAITING_PROC == 'MAGE_WAITING_PROC'
|
|
assert ExperimentStatus.TRAINING_SUCCESS == 'TRAINING_SUCCESS'
|
|
assert ExperimentStatus.TRAINING_ERROR != 'TRAINING_SUCCESS'
|
|
|
|
|
|
def test_experiment_status_access_by_name():
|
|
"""Test accessing enum members by name."""
|
|
assert ExperimentStatus['MAGE_WAITING_PROC'] == ExperimentStatus.MAGE_WAITING_PROC
|
|
assert ExperimentStatus['TRAINING_SUCCESS'] == ExperimentStatus.TRAINING_SUCCESS
|
|
assert ExperimentStatus['TRAINING_ERROR'] == ExperimentStatus.TRAINING_ERROR
|
|
assert ExperimentStatus['MLFLOW_SENT'] == ExperimentStatus.MLFLOW_SENT
|
|
assert ExperimentStatus['MLFLOW_SEND_ERROR'] == ExperimentStatus.MLFLOW_SEND_ERROR
|
|
assert ExperimentStatus['FILE_DELETED'] == ExperimentStatus.FILE_DELETED
|
|
assert ExperimentStatus['FILE_DELETE_ERROR'] == ExperimentStatus.FILE_DELETE_ERROR
|
|
|
|
|
|
def test_experiment_status_access_by_value():
|
|
"""Test accessing enum members by value."""
|
|
assert ExperimentStatus('MAGE_WAITING_PROC') == ExperimentStatus.MAGE_WAITING_PROC
|
|
assert ExperimentStatus('TRAINING_SUCCESS') == ExperimentStatus.TRAINING_SUCCESS
|
|
assert ExperimentStatus('TRAINING_ERROR') == ExperimentStatus.TRAINING_ERROR
|
|
assert ExperimentStatus('MLFLOW_SENT') == ExperimentStatus.MLFLOW_SENT
|
|
assert ExperimentStatus('MLFLOW_SEND_ERROR') == ExperimentStatus.MLFLOW_SEND_ERROR
|
|
assert ExperimentStatus('FILE_DELETED') == ExperimentStatus.FILE_DELETED
|
|
assert ExperimentStatus('FILE_DELETE_ERROR') == ExperimentStatus.FILE_DELETE_ERROR
|