Pillow/Tests
Jon Dufresne d244fbb299 Remove unnecessary calls to dict.keys()
iter(dict) is equivalent to iter(dict.keys()), so simply act on the dict
instead of adding the extra call.

Inspired by Lennart Regebro's PyCon 2017 presentation "Prehistoric
Patterns in Python". Available at:

https://www.youtube.com/watch?v=V5-JH23Vk0I
2017-05-28 09:55:38 -07:00
..
fonts Testcase added. 2015-01-07 21:38:35 -08:00
icc Corrected filename [ci skip] 2016-05-03 19:23:51 +10:00
images Image from Simon Conseil with permission: https://github.com/python-pillow/Pillow/issues/2481#issuecomment-293215833 2017-04-11 13:45:48 +03:00
32bit_segfault_check.py Set executable flag on scripts with shebang line 2017-03-31 19:43:19 +11:00
bench_cffi_access.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
bench_get.py Flake8 fixes 2015-08-25 22:27:18 +10:00
check_fli_overflow.py Health fixes 2016-04-01 21:49:30 +11:00
check_icns_dos.py flake8 2014-08-28 14:44:19 +03:00
check_imaging_leaks.py Set executable flag on scripts with shebang line 2017-03-31 19:43:19 +11:00
check_j2k_dos.py flake8 2014-08-28 14:44:19 +03:00
check_j2k_leaks.py Removed or commented unused variables 2015-04-24 16:02:38 +10:00
check_j2k_overflow.py Replace try/except/fail pattern with TestCase.assertRaises() 2016-11-06 13:43:09 -08:00
check_jpeg_leaks.py Changed lines to be below 80 characters 2015-12-02 16:41:26 +11:00
check_large_memory_numpy.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
check_large_memory.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
check_libtiff_segfault.py Replace try/except/fail pattern with TestCase.assertRaises() 2016-11-06 13:43:09 -08:00
check_png_dos.py ignore large text blocks in PNG if LOAD_TRUNCATED_IMAGES is enabled 2016-06-20 17:33:10 +03:00
check_webp_leaks.py Removed or commented unused variables 2015-04-24 16:02:38 +10:00
helper.py Flake8 fixes 2017-04-20 21:14:23 +10:00
import_all.py Flake8 fixes 2015-08-25 22:27:18 +10:00
make_hash.py Updated comments to use print as a function 2016-11-26 11:02:44 +11:00
README.rst Drop support for Python 2.6 2016-11-22 04:23:55 -08:00
test_000_sanity.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_binary.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_bmp_reference.py Added future print_function imports 2016-11-26 11:05:56 +11:00
test_box_blur.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_decompression_bomb.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_features.py Replace type() equality checks with isinstance 2016-10-31 06:41:43 -07:00
test_file_bmp.py flake8 2016-08-04 09:40:12 +03:00
test_file_bufrstub.py Remove unnecessary lambda 2017-03-05 09:14:44 +02:00
test_file_container.py Test ContainerIO for correctness 2017-03-05 00:46:30 +02:00
test_file_cur.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_dcx.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_dds.py Add support for BC7 to DdsImagePlugin 2016-08-26 02:26:03 -05:00
test_file_eps.py Added tests 2017-03-03 19:45:55 +11:00
test_file_fitsstub.py Removed unnecessary lambdas 2017-03-03 21:38:19 +11:00
test_file_fli.py Remove unused, open files at top level of tests. 2016-11-01 06:34:17 -07:00
test_file_fpx.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_ftex.py Move DDS decoders to C 2016-08-25 19:27:48 -05:00
test_file_gbr.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_gif.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_file_gimpgradient.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_gimppalette.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_gribstub.py Remove unnecessary lambda 2017-03-04 23:19:41 +02:00
test_file_hdf5stub.py Removed unnecessary lambdas 2017-03-03 21:38:19 +11:00
test_file_icns.py Remove unused, open files at top level of tests. 2016-11-01 06:34:17 -07:00
test_file_ico.py Test case for #2266 2016-11-30 16:36:04 +02:00
test_file_im.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_iptc.py Added tests 2017-03-03 19:45:55 +11:00
test_file_jpeg.py Remove unnecessary calls to dict.keys() 2017-05-28 09:55:38 -07:00
test_file_jpeg2k.py Replace try/except/fail pattern with TestCase.assertRaises() 2016-11-06 13:43:09 -08:00
test_file_libtiff_small.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_libtiff.py Remove unnecessary calls to dict.keys() 2017-05-28 09:55:38 -07:00
test_file_mcidas.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_mic.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_mpo.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_msp.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_file_palm.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_pcd.py Health fixes 2016-04-01 21:49:30 +11:00
test_file_pcx.py Added tests 2017-03-03 19:45:55 +11:00
test_file_pdf.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_pixar.py Test pixar for similarity 2017-02-28 08:27:53 +02:00
test_file_png.py Restricted PNG encoderinfo chunks to valid values when saving 2017-01-21 16:57:03 +11:00
test_file_ppm.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_file_psd.py Test PSD with and without ICC profile 2017-02-27 17:21:27 +02:00
test_file_sgi.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_file_spider.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_sun.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_file_tar.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_tga.py Test TGA RLE file 2016-04-21 17:49:35 +03:00
test_file_tiff_metadata.py Removed unused division import 2017-01-18 20:06:47 +11:00
test_file_tiff.py added non-exclusive fd for test 2017-04-04 00:27:20 -07:00
test_file_webp_alpha.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_webp_lossless.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_webp_metadata.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_webp.py Added tests that call _webp.WebPEncode and _webp.WebPDecode with invalid number of arguments. 2017-05-12 17:11:58 +02:00
test_file_wmf.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_file_xbm.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_xpm.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_file_xvthumb.py Compare to a Hopper image with a similar XV palette 2017-03-06 17:33:47 +02:00
test_font_bdf.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_font_pcf.py Use generator expressions instead of list comprehension 2016-11-14 18:11:15 -08:00
test_format_hsv.py Removed imports used only by comments 2017-01-18 20:06:47 +11:00
test_format_lab.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_access.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_array.py Fixed typos 2016-08-31 20:12:07 +10:00
test_image_convert.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_copy.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_crop.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_draft.py protect .draft() from second call 2016-11-22 04:28:04 +03:00
test_image_filter.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_frombytes.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_fromqimage.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_fromqpixmap.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_getbands.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_getbbox.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_getcolors.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_getdata.py Merge branch 'master' into rotation-pixel-center 2016-08-07 13:47:16 +03:00
test_image_getextrema.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_getim.py Drop support for Python 2.6 2016-11-22 04:23:55 -08:00
test_image_getpalette.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_getprojection.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_histogram.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_load.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_mode.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_paste.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_point.py Added test for point operation on F mode image 2017-01-28 14:02:22 +11:00
test_image_putalpha.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_putdata.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_putpalette.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_quantize.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_resample.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_resize.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_rotate.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_split.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_thumbnail.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_tobitmap.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_tobytes.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_image_toqimage.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_toqpixmap.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_image_transform.py Added test for missing method data in Image transform 2017-01-28 14:21:41 +11:00
test_image_transpose.py Further health fixes 2015-04-24 18:24:52 +10:00
test_image.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_imagechops.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_imagecms.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_imagecolor.py Remove unnecessary calls to dict.keys() 2017-05-28 09:55:38 -07:00
test_imagedraw.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_imageenhance.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_imagefile.py Add test 2017-05-13 12:07:16 -04:00
test_imagefont_bitmap.py Flake8 fixes 2015-12-31 07:27:27 +11:00
test_imagefont.py Increase epsilon for FreeType 2.7 2016-12-12 15:16:43 +02:00
test_imagegrab.py Renamed references to OS X to macOS 2016-09-23 21:12:03 +10:00
test_imagemath.py Replace type() equality checks with isinstance 2016-10-31 06:41:43 -07:00
test_imagemorph.py Added tests 2017-03-03 19:45:55 +11:00
test_imageops_usm.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_imageops.py Removed whitespace from blank lines 2016-09-03 12:23:42 +10:00
test_imagepalette.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_imagepath.py Replace try/except/fail pattern with TestCase.assertRaises() 2016-11-06 13:43:09 -08:00
test_imageqt.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_imagesequence.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_imageshow.py Added tests 2017-03-03 19:45:55 +11:00
test_imagestat.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_imagetk.py Flake8 fixes 2017-04-20 21:14:23 +10:00
test_imagewin_pointers.py Drop support for Python 2.6 2016-11-22 04:23:55 -08:00
test_imagewin.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_lib_image.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_lib_pack.py Merged BGRa test into Tests/test_lib_pack.py 2016-08-08 00:07:08 +02:00
test_locale.py Added future print_function imports 2016-11-26 11:05:56 +11:00
test_map.py Vulnerable map function is not called on windows 2016-10-03 07:42:48 -07:00
test_mode_i16.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_numpy.py Failing test case for #2259 2017-02-22 08:16:17 +02:00
test_pickle.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_psdraw.py Added anchor to readthedocs URL 2017-02-11 12:47:10 +11:00
test_pyroma.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_scipy.py disable tests broken on old system versions of numpy/scipy 2017-01-20 11:35:49 -08:00
test_shell_injection.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
test_tiff_ifdrational.py Removed unused print_function imports 2017-01-18 20:06:21 +11:00
test_util.py remove end of file banner from all files 2016-07-10 14:11:28 +03:00
threaded_save.py Added missing future print imports and removed unnecessary imports 2015-05-23 20:28:41 +10:00
versions.py Added missing future print imports and removed unnecessary imports 2015-05-23 20:28:41 +10: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 coverage nose

Execution
---------

**If Pillow has been built in-place**

To run an individual test::

    python Tests/test_image.py

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

    nosetests -vx Tests/test_*.py

Or with coverage::

    coverage run --append --include=PIL/* -m nose -vx Tests/test_*.py
    coverage report
    coverage html
    open htmlcov/index.html

**If Pillow has been installed**

To run an individual test::

    ./test-installed.py Tests/test_image.py

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

    ./test-installed.py