Search code examples
pythonunit-testingmockingfastapistarlette

Mocking environment variables with starlette config


from starlette.config import Config

config = Config(".env")

SOME_ENV_VAR: str = config("SOME_ENV_VAR", cast=str, default="abc")

I'm looking for a way to mock the value of SOME_ENV_VAR for unit tests. Is there such an option?

# mock config somehow so that config.SOME_ENV_VAR = "xyz"
def some_test():
    assert config.SOME_ENV_VAR == "xyz"

Solution

  • You can use Python's unittest.mock.patch method:

    from unittest.mock import patch
    from your_config_module import config
    
    @patch('config.SOME_ENV_VAR', 'xyz')
    def some_test():
        assert config.SOME_ENV_VAR == "xyz"