Skip to main content

Matchers for pytest

Project description

Pytest Matchers

Test your code with vague constrains

Release Notes CI PyPI - License PyPI - Downloads GitHub star chart Code style: black

Quick Install

With pip

pip install pytest-matchers

With poetry

poetry add pytest-matchers [--group dev]

Usage

Examples on tests/examples

from random import random
from pytest_matchers import is_number


def test_random_number():
    assert random() == is_number(min_value=0, max_value=1)

And when failing:

def test_random_number():
    assert random() == is_number(min_value=1, max_value=2)

On pytest CLI

=================================== FAILURES ===================================
______________________________ test_random_number ______________________________

    def test_random_number():
>       assert random() == is_number(min_value=1, max_value=2)
E       assert 0.9048172867693559 == To be a number between 1 and 2
E        +  where 0.9048172867693559 = random()
E        +  and   To be a number between 1 and 2 = is_number(min_value=1, max_value=2)

tests/examples/test_example.py:6: AssertionError
=========================== short test summary info ============================
FAILED tests/examples/test_example.py::test_random_number - assert 0.9048172867693559 == To be a number between 1 and 2
============================== 1 failed in 0.02s ===============================

On PyCharm

tests/examples/test_example.py:4 (test_random_number)
0.9048172867693559 != To be a number between 1 and 2

Expected :To be a number between 1 and 2
Actual   :0.9048172867693559

Matchers

  • is_number
  • is_string
  • is_list
  • is_instance
  • between
  • one_of
  • has_attribute
  • is_datetime
  • is_datetime_string
  • same_value
  • different_value
  • if_true
  • if_false
  • case
  • is_dict
  • is_strict_dict
  • is_json
  • is_uuid

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest_matchers-0.2.3.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_matchers-0.2.3-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file pytest_matchers-0.2.3.tar.gz.

File metadata

  • Download URL: pytest_matchers-0.2.3.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for pytest_matchers-0.2.3.tar.gz
Algorithm Hash digest
SHA256 610e3db62a20ee8df3c3fbd323dfc2f1720a05e2af341c9a9135241293509c38
MD5 1ac9866007d6106a9e0efe144daec4e2
BLAKE2b-256 52f947a2268da9b84fc87d5425dfe15994185da6623fa06e36da56b8e9f5d233

See more details on using hashes here.

File details

Details for the file pytest_matchers-0.2.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_matchers-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 bea2bb8a4e846a29588011f5f462f2eae2d86779929d128929947831b9337286
MD5 83948221ea76c806d5c6424c157ecace
BLAKE2b-256 30c1a2330bc98f1f55ae06fbdf1ccb4d77bdae3222dafab2b41efc53e2c303a8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page