"""Tests for feature flags.""" import pytest from unittest.mock import Mock from src.logic import feature def test_is_store_product_enabled_when_enabled(mocker): """Test is_store_product_enabled returns True when feature flag is enabled.""" mock_result = Mock() mock_result.message = 'enabled' mock_get_feature = mocker.patch.object( feature, 'get_single_feature_by_attributes', return_value=mock_result ) result = feature.is_store_product_enabled() assert result is True mock_get_feature.assert_called_once() def test_is_store_product_enabled_when_other_value(mocker): """Test is_store_product_enabled returns False for any non-enabled value.""" mock_result = Mock() mock_result.message = 'some_other_value' mock_get_feature = mocker.patch.object( feature, 'get_single_feature_by_attributes', return_value=mock_result ) result = feature.is_store_product_enabled() assert result is False mock_get_feature.assert_called_once() def test_is_store_product_enabled_when_none(mocker): """Test is_store_product_enabled returns False when feature flag returns None.""" mock_result = Mock() mock_result.message = None mock_get_feature = mocker.patch.object( feature, 'get_single_feature_by_attributes', return_value=mock_result ) result = feature.is_store_product_enabled() assert result is False mock_get_feature.assert_called_once() def test_is_store_product_enabled_when_exception(mocker): """Test is_store_product_enabled raises exception when feature flag service fails.""" mock_get_feature = mocker.patch.object( feature, 'get_single_feature_by_attributes', side_effect=Exception('Feature flag error') ) with pytest.raises(Exception) as er: feature.is_store_product_enabled() assert str(er.value) == 'Feature flag error' mock_get_feature.assert_called_once()