GitHub - pytest-dev/pytest-mimesis: Mimesis integration with the pytest test runner. This plugin provider useful fixtures based on providers from Mimesis. (original) (raw)
⛔️ DEPRECATED
This repository is now deprecated. We have integrated pytest-mimesis
into mimesis itself, and there is no longer a need to use a separate package. Refer to the Integration with Pytest section for more details.
pytest-mimesis
pytest-mimesis is a pytest plugin that provides pytest fixtures for Mimesis providers. This allows you to quickly and easily use randomized, dummy data as part of your test suite.
Installation
pip install pytest-mimesis
Examples
Using the personal provider as part of a test.
your_module/init.py
def validate_email(email): # code that validates an e-mail address return True
And your test file:
tests/test_email.py
from your_module import validate_email
def test_validate_email(mimesis): assert validate_email(mimesis('email'))
You can also specify locales:
@pytest.mark.parameterize('mimesis_locale', ['de']) # use German locale def test_create_user(mimesis): assert create_user(name=mimesis('full_name'))
@pytest.mark.parameterize('mimesis_locale', ['de', 'en', 'jp']) # test multiple locales def test_add_phone(user, mimesis): assert user.add_phone_number(name=mimesis('full_name'))
Fixtures
We provide two public fixtures: mimesis_locale
and mimesis
. While mimesis_locale
is just a string (like: en
, ru
),mimesis
is an instance of mimesis.schema.Field
.
We use caching of mimesis
instances for different locales for the whole test session, so creating new instances is cheap.
Related projects
You might also be interested in:
- mimesis itself, it is awesome!
- mimesis-factory which brings
factory_boy
integration tomimesis
License
pytest-mimesis is licensed under the MIT License.