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 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.
pip install pytest-mimesis
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'))
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.
You might also be interested in:
- mimesis itself, it is awesome!
- mimesis-factory which brings
factory_boy
integration tomimesis
pytest-mimesis is licensed under the MIT License.