pytest-stub 1.1.0

Creator: railscoder56

Last updated:

Add to Cart

Description:

pyteststub 1.1.0

https://github.com/idlesign/pytest-stub


Description
Stub packages, modules and attributes.
This pytest plugin allows you to replace dependencies with stubs.
It can be useful if you want to test some code using a dependency without actually having this dependency,
for example if you’re testing your library, which uses some parts of another library.


Requirements

Python 3.6+
pytest >= 2.9.0



How to use
You can stub dependencies either with your own custom objects or you may instruct pytest-stub
to generate functions or classes for you. Use stub fixture in your test functions, like this:
def test_django_related(stub):

stub.apply({
# Replace `call_command` with a generated function.
'django.core.management.call_command': '[func]',

# Replace `BaseCommand` with a generated class.
'django.core.management.base.BaseCommand': '[cls]',

# Replace `dummy` with generated MagicMock.
'django.dummy': '[mock]',

# Replace entire `cv2` module.
'cv2': '[mock]',

# Sometimes we need just a persistent (always the same) magic mock.
'numpy': '[mock_persist]',

# Stub multiple attributes in the same module with custom objects.
'django.conf': {
'settings': object(),
'some': True,
},

})
If we want to replace some dependency with a stub not in a fixture but globally, we can use stub_global() function
in root conftest.py (this code will apply patch before tests, so tests will be safe to import code using dependencies).
from pytest_stub.toolbox import stub_global

stub_global({
'cv2': '[mock_persist]',
})

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.