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
  • is_exception
  • after_applying_is

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.3.3.tar.gz (15.2 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.3.3-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pytest_matchers-0.3.3.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for pytest_matchers-0.3.3.tar.gz
Algorithm Hash digest
SHA256 61062f82b93f992d90fc412de031a0e03307eaf8b1aa3730e6294049a425a9f7
MD5 5f6b7c91e90b3dba83040df5b5bbedba
BLAKE2b-256 e27d078be4d1754219f7363cdcff96a091ecbf514fa8b8dee2f9202f38d71a89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytest_matchers-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e88409e60249615344fd3d15e0e3a05c3aad50289ea73b41758d3132e96440f3
MD5 d867265606231dc434d89436ee27bd58
BLAKE2b-256 77ef5d5de94d442b2c1b4ab857c02663a1117963d5f65a5260f25230cc21e976

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