简体   繁体   中英

How to mock os.environ['key'] using mockito with python?

I can use python mockito to mock os.environ.get('SOME_VAR') as demo here .
Main idea

when(os.environ).get(...).thenReturn(MOCKED_VAL)

Though to mock os.environ['SOME_VAR'] syntax, I failed to get it working as this code.

ps
My google search results little helpful so I asked here.
The closest I can found is using built-in unittest.path ie patch.dict(SOMEDICT, {'k':'v'}, clear=True)

It seems no answer until today using mockito package.

Here is my solution using builtin unittest mock patch

 class TestSomething:

    def test_07_env_production_on(self):
        """mock to force ENVIRONMENT to be production"""
        from unittest.mock import patch
        p = patch.dict(in_dict=os.environ, values={'ENVIRONMENT': 'production'}, clear=False)
        p.start()
        self.addCleanup(p.stop)  # register mockito's unstub() method to unittest's cleanup
        

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM