Skip to content
This repository has been archived by the owner on Jan 31, 2024. It is now read-only.
/ pytest-mimesis Public archive

Mimesis integration with the pytest test runner. This plugin provider useful fixtures based on providers from Mimesis.

License

Notifications You must be signed in to change notification settings

pytest-dev/pytest-mimesis

Repository files navigation

⛔️ 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

test wemake-python-styleguide Python Version

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:

License

pytest-mimesis is licensed under the MIT License.