Integration with Pytest¶
New in version 14.0.0.
You no longer require any third-party packages to seamlessly integrate Mimesis with pytest.
Usage¶
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:
from your_module import validate_email
def test_validate_email(mimesis):
assert validate_email(mimesis('email'))
You can also specify locales:
from mimesis.locales import Locale
@pytest.mark.parameterize('mimesis_locale', [Locale.DE]) # use German locale
def test_create_user(mimesis):
assert create_user(name=mimesis('full_name'))
@pytest.mark.parameterize('mimesis_locale', [Locale.DE, Locale.EN, Locale.JP]) # test multiple locales
def test_add_phone(user, mimesis):
assert user.add_phone_number(name=mimesis('full_name'))
Fixtures¶
We offer two public fixtures: mimesis_locale and mimesis. While mimesis_locale is
an enum object (e.g., Locale.EN, Locale.RU), mimesis is an instance of mimesis.schema.Field.
See mimesis.enums.Locale.
Impact on Test Speed¶
We employ caching of Mimesis instances for various locales throughout the entire test session, making the creation of new instances cost-effective.