84 lines
3.8 KiB
Python
84 lines
3.8 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.ORCHESTRATOR_WAITING_PROC == 'ORCHESTRATOR_WAITING_PROC'
|
|
assert ExperimentStatus.TRAINING_SUCCESS == 'TRAINING_SUCCESS'
|
|
assert ExperimentStatus.TRAINING_ERROR == 'TRAINING_ERROR'
|
|
assert ExperimentStatus.TRACKING_SENT == 'TRACKING_SENT'
|
|
assert ExperimentStatus.TRACKING_SEND_ERROR == 'TRACKING_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 8 status values."""
|
|
assert len(ExperimentStatus) == 8
|
|
|
|
|
|
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_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 'TRACKING_SENT' in [s.value for s in ExperimentStatus]
|
|
assert 'TRACKING_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) == 8
|
|
assert ExperimentStatus.ORCHESTRATOR_WAITING_PROC in statuses
|
|
assert ExperimentStatus.TRAINING_SUCCESS in statuses
|
|
assert ExperimentStatus.TRAINING_ERROR in statuses
|
|
assert ExperimentStatus.TRACKING_SENT in statuses
|
|
assert ExperimentStatus.TRACKING_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.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_WAITING_PROC'] == ExperimentStatus.ORCHESTRATOR_WAITING_PROC
|
|
)
|
|
assert ExperimentStatus['TRAINING_SUCCESS'] == ExperimentStatus.TRAINING_SUCCESS
|
|
assert ExperimentStatus['TRAINING_ERROR'] == ExperimentStatus.TRAINING_ERROR
|
|
assert ExperimentStatus['TRACKING_SENT'] == ExperimentStatus.TRACKING_SENT
|
|
assert ExperimentStatus['TRACKING_SEND_ERROR'] == ExperimentStatus.TRACKING_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('ORCHESTRATOR_WAITING_PROC') == ExperimentStatus.ORCHESTRATOR_WAITING_PROC
|
|
)
|
|
assert ExperimentStatus('TRAINING_SUCCESS') == ExperimentStatus.TRAINING_SUCCESS
|
|
assert ExperimentStatus('TRAINING_ERROR') == ExperimentStatus.TRAINING_ERROR
|
|
assert ExperimentStatus('TRACKING_SENT') == ExperimentStatus.TRACKING_SENT
|
|
assert ExperimentStatus('TRACKING_SEND_ERROR') == ExperimentStatus.TRACKING_SEND_ERROR
|
|
assert ExperimentStatus('FILE_DELETED') == ExperimentStatus.FILE_DELETED
|
|
assert ExperimentStatus('FILE_DELETE_ERROR') == ExperimentStatus.FILE_DELETE_ERROR
|