"""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.ORCHESTRATOR_VALIDATION_ERROR == 'ORCHESTRATOR_VALIDATION_ERROR' assert ExperimentStatus.ORCHESTRATOR_WAITING_PROC == 'ORCHESTRATOR_WAITING_PROC' assert ExperimentStatus.TRAINING_SUCCESS == 'TRAINING_SUCCESS' assert ExperimentStatus.TRAINING_ERROR == 'TRAINING_ERROR' def test_experiment_status_count(): """Test that enum has exactly 4 status values.""" assert len(ExperimentStatus) == 4 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 'ORCHESTRATOR_VALIDATION_ERROR' in [s.value for s in ExperimentStatus] assert 'ORCHESTRATOR_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] def test_experiment_status_iteration(): """Test that enum can be iterated.""" statuses = list(ExperimentStatus) assert len(statuses) == 4 assert ExperimentStatus.ORCHESTRATOR_VALIDATION_ERROR in statuses assert ExperimentStatus.ORCHESTRATOR_WAITING_PROC in statuses assert ExperimentStatus.TRAINING_SUCCESS in statuses assert ExperimentStatus.TRAINING_ERROR in statuses def test_experiment_status_comparison(): """Test that enum values can be compared with strings.""" assert ExperimentStatus.ORCHESTRATOR_VALIDATION_ERROR == 'ORCHESTRATOR_VALIDATION_ERROR' assert ExperimentStatus.ORCHESTRATOR_WAITING_PROC == 'ORCHESTRATOR_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['ORCHESTRATOR_VALIDATION_ERROR'] == ExperimentStatus.ORCHESTRATOR_VALIDATION_ERROR ) assert ( ExperimentStatus['ORCHESTRATOR_WAITING_PROC'] == ExperimentStatus.ORCHESTRATOR_WAITING_PROC ) assert ExperimentStatus['TRAINING_SUCCESS'] == ExperimentStatus.TRAINING_SUCCESS assert ExperimentStatus['TRAINING_ERROR'] == ExperimentStatus.TRAINING_ERROR def test_experiment_status_access_by_value(): """Test accessing enum members by value.""" assert ( ExperimentStatus('ORCHESTRATOR_VALIDATION_ERROR') == ExperimentStatus.ORCHESTRATOR_VALIDATION_ERROR ) assert ( ExperimentStatus('ORCHESTRATOR_WAITING_PROC') == ExperimentStatus.ORCHESTRATOR_WAITING_PROC ) assert ExperimentStatus('TRAINING_SUCCESS') == ExperimentStatus.TRAINING_SUCCESS assert ExperimentStatus('TRAINING_ERROR') == ExperimentStatus.TRAINING_ERROR