[bug] Testing and mocking docs are wrong
See original GitHub issueDescribe the bug
The docs in https://dynaconf.readthedocs.io/en/latest/guides/testing.html explain how to test with dynaconf. The point is that if you follow the explanation, you will see AttributeError: 'DynaconfDict' object has no attribute 'current_env'
To Reproduce
Just try to follow the steps in https://dynaconf.readthedocs.io/en/latest/guides/testing.html
Expected behavior The code don’t fail and the mock can be used.
Debug output
Debug Output
Traceback (most recent call last):
File "lalala.py", line 5, in <module>
toml_loader.load(mocked_settings, filename="test_conf.toml", env="testing")
File "/home/angel/.virtualenvs/navi-Pag0EvBg/lib/python3.6/site-packages/dynaconf/loaders/toml_loader.py", line 38, in load
loader.load(filename=filename, key=key, silent=silent)
File "/home/angel/.virtualenvs/navi-Pag0EvBg/lib/python3.6/site-packages/dynaconf/loaders/base.py", line 69, in load
env_list = build_env_list(self.obj, self.env)
File "/home/angel/.virtualenvs/navi-Pag0EvBg/lib/python3.6/site-packages/dynaconf/utils/__init__.py", line 220, in build_env_list
if obj.current_env and obj.current_env not in env_list:
AttributeError: 'DynaconfDict' object has no attribute 'current_env'
Environment (please complete the following information):
- OS: Ubuntu 18.04
- Dynaconf Version 2.2
Issue Analytics
- State:
- Created 4 years ago
- Reactions:5
- Comments:15 (5 by maintainers)
Top Results From Across the Web
[bug] Testing and mocking docs are wrong · Issue #264 - GitHub
Describe the bug The docs in https://dynaconf.readthedocs.io/en/latest/guides/testing.html explain how to test with dynaconf.
Read more >How do I test a system where the objects are difficult to mock?
Unit tests are fast and easy to run. They catch bugs in individual sections of code and use mocks to make running them...
Read more >How to test software: mocking, stubbing, and contract testing
In this friendly overview, explore the use of practices such as mocking, stubbing, and contract testing to get the right level of validation ......
Read more >Mocking is a Code Smell. Note: This is part of the “Composing…
One of the biggest complaints I hear about TDD and unit tests is that people struggle with all of the mocking required to...
Read more >Best practices for writing unit tests - .NET - Microsoft Learn
Learn best practices for writing unit tests that drive code ... If you call your stubs "mocks," other developers are going to make...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I think the easiest way is to dump a settings file to a temporary location and load it. Something like:
And you can use the fixture as follows:
The beauty of this approach is that you can actually add a
Mock
to your mock settings file, e.g.Nice insight! @rochacbruno So actually there’s no way to mock settings? I was digging in the tests but didn’t find anything to load a json or a dict and being able to mock tests.
I wrote something like this. Not optimum but for now it works ok for my purposes. Maybe somebody finds it useful.
Thanks!
Another option would be to use Monkeypatch