from unittest.mock import MagicMock from grass.config import DEV_ENVIRONMENT, PROD_ENVIRONMENT, QA_ENVIRONMENT from grass.connectors.mysql import ( DEFAULT_POOL_RECYCLE_TIMEOUT, get_pool_recycle_timeout, ) def mock_config(environment, custom_timeout=None): config = MagicMock() config.environment = environment config.DEV_ENVIRONMENT = DEV_ENVIRONMENT config.DB_POOL_RECYCLE_TIMEOUT = custom_timeout return config def test_pool_recycle_default_in_dev(): assert ( get_pool_recycle_timeout(mock_config(DEV_ENVIRONMENT)) == DEFAULT_POOL_RECYCLE_TIMEOUT ) def test_pool_recycle_custom_value_in_dev(): assert get_pool_recycle_timeout(mock_config(DEV_ENVIRONMENT, 60)) == 60 def test_pool_recycle_custom_value_ignored_in_qa_and_prod(): assert ( get_pool_recycle_timeout(mock_config(QA_ENVIRONMENT, 60)) == DEFAULT_POOL_RECYCLE_TIMEOUT ) assert ( get_pool_recycle_timeout(mock_config(PROD_ENVIRONMENT, 60)) == DEFAULT_POOL_RECYCLE_TIMEOUT )