Skip to main content

Convert unittest test-cases to pytest

Project description

Author:

Hartmut Goebel <h.goebel@crazy-compilers.com>

Version:
0.4
Licence:

GNU Public Licence v3 or later (GPLv3+)

Homepage:

https://github.com/pytest-dev/unittest2pytest

https://secure.travis-ci.org/pytest-dev/unittest2pytest.png?branch=develop

unittest2pytest is a tool that helps rewriting Python unittest test-cases into pytest test-cases.

In contrast to other similar tools, this unittest2pytest

  • handles keyword arguments,

  • handles single-line test-cases and several tests on one line,

  • uses context-handlers where appropriate.

This is done by using lib2to3 and Python’s mighty inspect module.

Installation

To install unittest2pytest, simply run:

pip install unittest2pytest

Usage

To print a diff of changes that unittest2pytest will make against a particular source file or directory:

unittest2pytest source_folder

To have those changes written to the files:

unittest2pytest -w source_folder

To have those changes written to another directory:

unittest2pytest -w source_folder --output-dir /some/where/else

By default, this will create backup files for each file that will be changed. You can add the -n option to not create the backups. Please do not do this if you are not using a version control system.

For more options about running particular fixers, run unittest2pytest --help or read the lib2to3 documentation. This tool is built on top of that one.

Fixes

A list of the available fixers can be found with the following:

$ unittest2pytest -l
Available transformations for the -f/--fix option:
remove_class
self_assert

Note: if your tests use the context managers with self.assertRaises or with self.assertWarns, they will be transformed to pytest.raises or pytest.warns appropriately, but because the semantics are different, any use of the output value from the context managers (e.g. the x in with pytest.raises(ValueError) as x:) will be wrong and will require manual adjustment after the fact.

Changelog

0.4 (2019-06-30)

  • Add support for assertDictContainsSubset.

  • Put parenthesis around expressions if required.

  • Fixed assertRaisesRegex, assertRaisesRegexp and assertWarnsRegex. The regex was getting replaced with an undefined variable pattern.

  • Fix assertRaisesRegex and assertRaisesRegexp with **kwargs and atom parameters.

  • Made assertRaisesRegex, assertRaisesRegexp and assertWarnsRegex use the match kwarg in pytest.raises instead of creating a variable with the context manager and doing an assert on re.search.

  • Add a short developer guide.

  • Remove testing on Python 3.0, 3.1, 3.2, add 3.6 and 3.7.

  • Distribute package as a universal wheel.

v0.3 (2016-07-26)

  • Add support for assertRaises / assertWarns context managers.

  • Add support for converting lambda arguments in assertRaises into context managers.

  • Fix some incorrect transformations.

  • Internal cleanup and fixes.

v0.2 (2015-10-20)

  • Add support for assertRegex/assertRegexpMatches, assertNotRegex, assertRaisesRegex/assertRaisesRegexp, assertWarnsRegex.

  • unittest2pytest is now a pytest subproject.

  • Minor fixes.

v0.1 (2015-10-16)

  • Initial release

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

unittest2pytest-0.4.tar.gz (35.5 kB view details)

Uploaded Source

Built Distribution

unittest2pytest-0.4-py2.py3-none-any.whl (15.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file unittest2pytest-0.4.tar.gz.

File metadata

  • Download URL: unittest2pytest-0.4.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/38.2.4 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.15

File hashes

Hashes for unittest2pytest-0.4.tar.gz
Algorithm Hash digest
SHA256 a909522aa54787e20c1cabda9624bf81edcfe5107dc3c73a478ad2d0cf67c21f
MD5 9bbf0f7d67541a6e1a7bbd7be2c8b0fa
BLAKE2b-256 6f04e244aa1879fd96617fdf64526e7cc98531fbdf27762d44525cdabb5c2a8f

See more details on using hashes here.

File details

Details for the file unittest2pytest-0.4-py2.py3-none-any.whl.

File metadata

  • Download URL: unittest2pytest-0.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.9.1 pkginfo/1.4.1 requests/2.18.4 setuptools/38.2.4 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/2.7.15

File hashes

Hashes for unittest2pytest-0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8f270c37fee3b57b3e2bb32db0a872d07ddb77c3b2ae62e1c922b1b497af9a2f
MD5 2819e5f0788ae92dcbce62e1420c078d
BLAKE2b-256 06794ee8f18ce02c0910bde07c0651449da572a13e6c8a38b1e0a9fdfc66fab5

See more details on using hashes here.

Supported by

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