Pillow/Tests
Jon Dufresne 4f185329f4 Streamline test skipping based on supported features
This adds a new test decorator: skip_unless_feature(). The argument is
the same as passed to features.check(). If the feature is not supported,
the test will be skipped.

This removes several kinds of boilerplate copied and pasted around tests
so test feature checking is handled and displayed more consistently.

Refs #4193
2020-02-18 13:07:01 -08:00
..
fonts add test for #3777 2019-06-25 22:16:00 +10:00
icc Corrected filename [ci skip] 2016-05-03 19:23:51 +10:00
images Merge pull request #4334 from radarhere/outline_width 2020-02-15 14:30:12 +02:00
__init__.py Improve pytest configuration to allow specific tests as CLI args 2019-01-13 09:00:12 -08:00
32bit_segfault_check.py Introduce isort to automate import ordering and formatting 2019-07-06 16:11:35 -07:00
bench_cffi_access.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
check_fli_overflow.py Use context managers 2019-11-26 07:03:23 +11:00
check_icns_dos.py Use bytes literals instead of bytes(str) 2019-10-06 19:26:55 -07:00
check_imaging_leaks.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
check_j2k_dos.py Use bytes literals instead of bytes(str) 2019-10-06 19:26:55 -07:00
check_j2k_leaks.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
check_j2k_overflow.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
check_jpeg_leaks.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
check_large_memory_numpy.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
check_large_memory.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
check_libtiff_segfault.py Use context managers 2019-11-26 07:03:23 +11:00
check_png_dos.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
conftest.py Move safe imports to the top of test files 2020-02-17 10:49:27 -08:00
createfontdatachunk.py Upgrade Python syntax with pyupgrade --py3-plus 2019-10-07 14:30:59 +03:00
helper.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
README.rst Cover tests https://nedbatchelder.com/blog/201908/dont_omit_tests_from_coverage.html 2019-11-20 17:28:12 +02:00
test_000_sanity.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_binary.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_bmp_reference.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_box_blur.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_color_lut.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_core_resources.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_decompression_bomb.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_features.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_blp.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_bmp.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_bufrstub.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_file_container.py Return strings or bytes from ContainerIO according to the file object mode 2020-02-15 22:13:10 +11:00
test_file_cur.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_file_dcx.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_dds.py Remove commas 2020-02-15 16:21:37 +02:00
test_file_eps.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_fitsstub.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_file_fli.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_fpx.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_ftex.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_gbr.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_gd.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_file_gif.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_gimpgradient.py Move safe imports to the top of test files 2020-02-17 10:49:27 -08:00
test_file_gimppalette.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_file_gribstub.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_file_hdf5stub.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_file_icns.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_file_ico.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_file_im.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_file_iptc.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_file_jpeg.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_jpeg2k.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_libtiff_small.py Use context managers 2019-11-26 07:03:23 +11:00
test_file_libtiff.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_mcidas.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_mic.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_mpo.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_msp.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_palm.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_pcd.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_pcx.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_pdf.py Use context managers 2019-11-26 07:03:23 +11:00
test_file_pixar.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_png.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_ppm.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_psd.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_sgi.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_spider.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_file_sun.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_tar.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_tga.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_file_tiff_metadata.py Merge pull request #4390 from jdufresne/resource-warning 2020-02-12 17:10:51 +02:00
test_file_tiff.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_file_wal.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_file_webp_alpha.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_webp_animated.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_webp_lossless.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_webp_metadata.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_webp.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_file_wmf.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_file_xbm.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_file_xpm.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_file_xvthumb.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_font_bdf.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_font_leaks.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_font_pcf.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_format_hsv.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_format_lab.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_access.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_image_array.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_convert.py Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
test_image_copy.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_crop.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_draft.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_image_entropy.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_filter.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_frombytes.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_fromqimage.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_image_getbands.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_getbbox.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_getcolors.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_getdata.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_getextrema.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_getim.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_getpalette.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_getprojection.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_histogram.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_load.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_mode.py Move safe imports to the top of test files 2020-02-17 10:49:27 -08:00
test_image_paste.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_image_point.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_putalpha.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_image_putdata.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_putpalette.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_quantize.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_reduce.py Remove unnecessary coerce to float 2020-01-26 06:33:18 -08:00
test_image_resample.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_image_resize.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_image_rotate.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_split.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_image_thumbnail.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_tobitmap.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image_tobytes.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_image_transform.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_image_transpose.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_image.py Move safe imports to the top of test files 2020-02-17 10:49:27 -08:00
test_imagechops.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_imagecms.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_imagecolor.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_imagedraw.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_imagedraw2.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_imageenhance.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_imagefile.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_imagefont_bitmap.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_imagefont.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_imagefontctl.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_imagegrab.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_imagemath.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_imagemorph.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_imageops_usm.py Upgrade Python syntax with pyupgrade --py3-plus 2019-11-01 13:54:19 +02:00
test_imageops.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_imagepalette.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_imagepath.py Drop support for EOL Python 2.7 2019-10-07 14:30:59 +03:00
test_imageqt.py Merge branch 'master' into rm-2.7 2019-10-26 09:07:44 +03:00
test_imagesequence.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_imageshow.py Corrected skip condition 2020-01-28 19:59:41 +11:00
test_imagestat.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_imagetk.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_imagewin_pointers.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_imagewin.py Import unittest from stdlib rather than helper.py 2019-11-20 18:42:52 -08:00
test_lib_image.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_lib_pack.py Concatenate string literals on same line 2019-12-26 17:08:36 +02:00
test_locale.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_main.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_map.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_mode_i16.py Merge remote-tracking branch 'upstream/master' into rm-2.7 2019-11-01 13:22:56 +02:00
test_numpy.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_pdfparser.py Replace unittest with pytest 2020-02-13 12:15:05 +02:00
test_pickle.py Remove testing of Python-2-only cPickle module 2020-02-17 10:27:36 -08:00
test_psdraw.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_pyroma.py Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
test_qt_image_fromqpixmap.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_qt_image_toqimage.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_qt_image_toqpixmap.py Introduce isort to automate import ordering and formatting 2019-07-06 16:11:35 -07:00
test_shell_injection.py Use context managers 2019-11-26 07:03:23 +11:00
test_tiff_ifdrational.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00
test_uploader.py Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
test_util.py Convert some tests to pytest style 2020-01-18 12:12:10 -08:00
test_webp_leaks.py Streamline test skipping based on supported features 2020-02-18 13:07:01 -08:00

Pillow Tests
============

Test scripts are named ``test_xxx.py`` and use the ``unittest`` module. A base class and helper functions can be found in ``helper.py``.

Dependencies
------------

Install::

    pip install pytest pytest-cov

Execution
---------

To run an individual test::

    pytest Tests/test_image.py

Or::

    pytest -k test_image.py

Run all the tests from the root of the Pillow source distribution::

    pytest

Or with coverage::

    pytest --cov PIL --cov Tests --cov-report term
    coverage html
    open htmlcov/index.html