80 lines
2.8 KiB
Python
80 lines
2.8 KiB
Python
"""Unit tests for custom exceptions with 100% coverage."""
|
|
|
|
import pytest
|
|
|
|
|
|
def test_model_training_error_with_default_message():
|
|
"""Test ModelTrainingError with default message."""
|
|
from model_manager.utils.exceptions import ModelTrainingError
|
|
|
|
error = ModelTrainingError(model_trained=True, model_saved=False)
|
|
|
|
assert error.model_trained is True
|
|
assert error.model_saved is False
|
|
assert str(error) == 'Model training workflow failed (model_trained=True, model_saved=False)'
|
|
|
|
|
|
def test_model_training_error_with_custom_message():
|
|
"""Test ModelTrainingError with custom message."""
|
|
from model_manager.utils.exceptions import ModelTrainingError
|
|
|
|
custom_msg = 'Custom error occurred during training'
|
|
error = ModelTrainingError(model_trained=False, model_saved=False, message=custom_msg)
|
|
|
|
assert error.model_trained is False
|
|
assert error.model_saved is False
|
|
assert str(error) == custom_msg
|
|
|
|
|
|
def test_model_training_error_both_true():
|
|
"""Test ModelTrainingError when both flags are True."""
|
|
from model_manager.utils.exceptions import ModelTrainingError
|
|
|
|
error = ModelTrainingError(model_trained=True, model_saved=True)
|
|
|
|
assert error.model_trained is True
|
|
assert error.model_saved is True
|
|
assert str(error) == 'Model training workflow failed (model_trained=True, model_saved=True)'
|
|
|
|
|
|
def test_model_training_error_both_false():
|
|
"""Test ModelTrainingError when both flags are False."""
|
|
from model_manager.utils.exceptions import ModelTrainingError
|
|
|
|
error = ModelTrainingError(model_trained=False, model_saved=False)
|
|
|
|
assert error.model_trained is False
|
|
assert error.model_saved is False
|
|
assert str(error) == 'Model training workflow failed (model_trained=False, model_saved=False)'
|
|
|
|
|
|
def test_model_training_error_is_exception():
|
|
"""Test ModelTrainingError is an Exception subclass."""
|
|
from model_manager.utils.exceptions import ModelTrainingError
|
|
|
|
error = ModelTrainingError(model_trained=True, model_saved=False)
|
|
|
|
assert isinstance(error, Exception)
|
|
|
|
|
|
def test_model_training_error_can_be_raised():
|
|
"""Test ModelTrainingError can be raised and caught."""
|
|
from model_manager.utils.exceptions import ModelTrainingError
|
|
|
|
with pytest.raises(ModelTrainingError) as exc_info:
|
|
raise ModelTrainingError(model_trained=True, model_saved=False)
|
|
|
|
assert exc_info.value.model_trained is True
|
|
assert exc_info.value.model_saved is False
|
|
|
|
|
|
def test_model_training_error_with_empty_message():
|
|
"""Test ModelTrainingError with empty string message."""
|
|
from model_manager.utils.exceptions import ModelTrainingError
|
|
|
|
error = ModelTrainingError(model_trained=True, model_saved=True, message='')
|
|
|
|
assert error.model_trained is True
|
|
assert error.model_saved is True
|
|
assert str(error) == ''
|