Skip to main content

A fixture to support expect tests in pytest

Project description

PyPI version Python versions See Build Status on AppVeyor

A fixture to support expect tests (golden tests) in pytest

This code was mostly copied from ezyang/expecttest who wrote an implementation for unittest.

Installation

You can install “pytest-expect-test” via pip from PyPI:

$ pip install pytest-expect-test

Usage

Start by writing your test, printing out any interesting output, and then calling expect with an empty string

# Function we are testing
def cumulative_sum(nums):
    cum_sum = 0
    result = []
    for num in nums:
        result.append(num+cum_sum)
        cum_sum += num
    return result


def test_simple(expect):
    print(cumulative_sum([2, 3, 5]))
    expect("""""")
    print(cumulative_sum([1, 5, 9]))
    expect("""""")

Then run:

$ pytest

Note that the test fails because we expected nothing to be printed (e.g. we passed an empty string to the expect function), but there was some text that was printed.

We can automatically fix these tests by running:

$ EXPECTTEST_ACCEPT=1 pytest

Our test will then be updated to look like:

def test_simple(expect):
    print(cumulative_sum([2, 3, 5]))
    expect("""\
[2, 5, 10]
""")
    print(cumulative_sum([1, 5, 9]))
    expect("""\
[1, 6, 15]
""")

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the MIT license, “pytest-expect-test” is free and open source software

This pytest plugin was generated with Cookiecutter along with @hackebrot’s cookiecutter-pytest-plugin template.

Issues

If you encounter any problems, please file an issue along with a detailed description.

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-expect-test-0.1.0.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

pytest_expect_test-0.1.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file pytest-expect-test-0.1.0.tar.gz.

File metadata

  • Download URL: pytest-expect-test-0.1.0.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.6

File hashes

Hashes for pytest-expect-test-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6e0ba127acc514b438d9cb5386909517ee5d864ea78593b924281df91a3e3607
MD5 31f371bf051a46e551efa2014f1c9852
BLAKE2b-256 2fbce0076616c5b6271ec8b2e2d9b739af53d1fc383e37a02bdf58a222b01ffb

See more details on using hashes here.

File details

Details for the file pytest_expect_test-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pytest_expect_test-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3566d910695ab1047eeb03a59b68f4eefe8b96dbf16cd6f377ed5de2ed383685
MD5 a3c1b992506d41af357dcd861ecda6f1
BLAKE2b-256 6806b1dac7e5548e1220dc0f6af6e6b072b703dbe1a93d5f7923815b5d38dd77

See more details on using hashes here.

Supported by

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