Pillow/Tests
Eric L Frederich 86e775daa3 bug fix: Qt wants data aligned to 32 bits
Images in Qt show up incorrectly if each line is not aligned to 32 bits.

It is pretty common for an image's lines to be 32-bit alinged by chance.
Obviously any 32-bit image will not have any problem.
For the bug to manifest itself you'd need...
* a 1-bit image whose width is not a multiple of 32
* an 8-bit image who width is not a multiple of 4

Testing more images now and added a 7x13 png test image
2015-09-18 16:07:35 -04:00
..
fonts Testcase added. 2015-01-07 21:38:35 -08:00
icc Licensed, freely available icc profiles 2014-09-24 21:47:32 -07:00
images bug fix: Qt wants data aligned to 32 bits 2015-09-18 16:07:35 -04:00
32bit_segfault_check.py flake8 2014-08-28 14:44:19 +03:00
bench_cffi_access.py Various Flake8 fixes 2015-04-24 09:26:52 +10:00
bench_get.py Flake8 fixes 2015-08-25 22:27:18 +10:00
check_icns_dos.py flake8 2014-08-28 14:44:19 +03:00
check_imaging_leaks.py Various Flake8 fixes 2015-07-03 16:22:56 +10: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_jpeg_leaks.py Flake8 fixes 2015-06-20 14:46:04 +10:00
check_png_dos.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
check_webp_leaks.py Removed or commented unused variables 2015-04-24 16:02:38 +10:00
crash_ttf_memory_error.py flake8 2014-08-28 14:44:19 +03:00
helper.py Flake8 fixes 2015-06-20 14:46:04 +10:00
import_all.py Flake8 fixes 2015-08-25 22:27:18 +10:00
large_memory_numpy_test.py Do not quit Python if numpy is not installed 2014-12-19 00:40:27 -08:00
large_memory_test.py flake8 2014-08-28 14:44:19 +03:00
make_hash.py Added missing future print imports and removed unnecessary imports 2015-05-23 20:28:41 +10:00
README.rst Fixed typo in Tests README.rst 2015-03-02 09:28:24 +11:00
show_icc.py Flake8 fixes 2015-08-25 22:27:18 +10:00
show_mcidas.py Flake8 fixes 2015-08-25 22:27:18 +10:00
test_000_sanity.py Remove unused tearDownModule 2014-07-07 20:03:50 +03:00
test_binary.py Various Flake8 fixes 2015-04-24 09:26:52 +10:00
test_bmp_reference.py Further health fixes 2015-04-24 18:24:52 +10:00
test_box_blur.py Some landscape.io fixes 2014-11-27 21:43:45 +02:00
test_cffi.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_decompression_bomb.py Change some lena() to hopper() 2014-09-05 12:36:24 +03:00
test_features.py Test unsupported features 2015-05-15 11:42:36 +03:00
test_file_bmp.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_bufrstub.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_cur.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_dcx.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_eps.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_fitsstub.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_fli.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_fpx.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_gbr.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_gif.py Corrected version number when saving GIFs 2015-08-21 22:10:13 +10:00
test_file_gimpgradient.py Relax exact equals to approximate 2014-09-29 16:36:09 -07:00
test_file_gimppalette.py More GIMP palette tests 2015-07-01 14:28:34 +03:00
test_file_gribstub.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_hdf5stub.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_icns.py Fix test according to original: 689f28aae7 (diff-d48d995756d16b9d9b8151e27377a37dR25) 2015-05-05 19:38:10 +03:00
test_file_ico.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_im.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_iptc.py Replaced old-style classes 2015-05-27 00:07:21 +10:00
test_file_jpeg.py Added test for typeerror test for gpsexif 2015-09-10 05:32:11 -07:00
test_file_jpeg2k.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_libtiff_small.py Further health fixes 2015-04-24 18:24:52 +10:00
test_file_libtiff.py Use logging instead of print. 2015-06-29 12:39:50 -07:00
test_file_mcidas.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_mic.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_mpo.py Added is_animated 2015-06-30 13:25:00 +10:00
test_file_msp.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_palm.py Merge remote-tracking branch 'upstream/master' into flake8 2014-09-23 16:35:20 +03:00
test_file_pcx.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_pdf.py Added various tests 2015-07-03 15:03:25 +10:00
test_file_png.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_ppm.py Fixed infinite loop on truncated file 2015-08-29 02:05:08 +10:00
test_file_psd.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_sgi.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_spider.py Added is_animated 2015-06-30 13:25:00 +10:00
test_file_sun.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_tar.py Replace lena.tar with hopper.tar 2014-09-04 12:21:19 +03:00
test_file_tga.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_tiff_metadata.py Fix for UnicodeDecodeError in TiffImagePlugin 2015-09-10 07:57:47 -07:00
test_file_tiff.py Flake8 fixes 2015-08-25 22:27:18 +10:00
test_file_webp_alpha.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_file_webp_lossless.py Specified exception types 2015-05-30 09:18:27 +10:00
test_file_webp_metadata.py Specified exception types 2015-05-30 09:18:27 +10:00
test_file_webp.py Added various tests 2015-07-03 15:03:25 +10:00
test_file_xbm.py Fix comment and file 2015-05-12 13:34:18 +03:00
test_file_xpm.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_font_bdf.py Added various tests 2015-07-03 15:03:25 +10:00
test_font_pcf.py Added various tests 2015-07-03 15:03:25 +10:00
test_format_hsv.py Added missing future print imports and removed unnecessary imports 2015-05-23 20:28:41 +10:00
test_format_lab.py Remove unused tearDownModule 2014-07-07 20:03:50 +03:00
test_image_array.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_convert.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_copy.py Merge remote-tracking branch 'upstream/master' into flake8 2014-09-23 16:35:20 +03:00
test_image_crop.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_draft.py Fix typo: fihopperme -> filename 2014-09-15 08:59:28 +03:00
test_image_filter.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_image_frombytes.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_fromqimage.py bug fix: Qt wants data aligned to 32 bits 2015-09-18 16:07:35 -04:00
test_image_fromqpixmap.py Removed unused imports 2015-06-19 15:35:56 +10:00
test_image_getbands.py Remove unused tearDownModule 2014-07-07 20:03:50 +03:00
test_image_getbbox.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_getcolors.py Fix tests. test_trns_p() needed assert_image_similar() in place of assert_image_equal() 2014-09-14 20:00:13 +03:00
test_image_getdata.py Fix tests. test_trns_p() needed assert_image_similar() in place of assert_image_equal() 2014-09-14 20:00:13 +03:00
test_image_getextrema.py Fix tests. test_trns_p() needed assert_image_similar() in place of assert_image_equal() 2014-09-14 20:00:13 +03:00
test_image_getim.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_getpalette.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_getpixel.py Remove unused tearDownModule 2014-07-07 20:03:50 +03:00
test_image_getprojection.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_histogram.py Fix tests. test_trns_p() needed assert_image_similar() in place of assert_image_equal() 2014-09-14 20:00:13 +03:00
test_image_load.py Removed unnecessary lambdas 2015-04-24 16:02:39 +10:00
test_image_mode.py Added various tests 2015-07-03 15:03:25 +10:00
test_image_offset.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_point.py Merge remote-tracking branch 'upstream/master' into flake8 2014-09-23 16:35:20 +03:00
test_image_putalpha.py Remove unused tearDownModule 2014-07-07 20:03:50 +03:00
test_image_putdata.py Various Flake8 fixes 2015-04-24 09:26:52 +10:00
test_image_putpalette.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_putpixel.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_quantize.py Added test 2015-08-22 23:03:11 +10:00
test_image_resize.py Fixed various typos 2015-05-29 14:59:54 +10:00
test_image_rotate.py Only use fast rotate operations if the expand flag is in use or the image is square 2015-08-06 00:23:14 +10:00
test_image_split.py Further health fixes 2015-04-24 18:24:52 +10:00
test_image_thumbnail.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_tobitmap.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_tobytes.py Replace some lena() with hopper(), and temporarily disable fail-fast so we can see all failures 2014-09-05 13:03:56 +03:00
test_image_toqimage.py TST: fix ValueError on Python 2.6 2015-06-28 20:50:17 -07:00
test_image_toqpixmap.py Fixed ValueError in Python 2.6 2015-06-29 14:59:05 +10:00
test_image_transform.py Changed variable name foo since it has been blacklisted in health 2015-04-01 10:29:26 +11:00
test_image_transpose.py Further health fixes 2015-04-24 18:24:52 +10:00
test_image.py Added test for pathlib 2015-08-05 21:29:24 +10:00
test_imagechops.py Change some lena() to hopper() 2014-09-05 12:36:24 +03:00
test_imagecms.py Various Flake8 fixes 2015-04-24 09:26:52 +10:00
test_imagecolor.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_imagedraw.py Flake8 fixes 2015-08-25 22:27:18 +10:00
test_imageenhance.py Various Flake8 fixes 2015-04-24 09:26:52 +10:00
test_imagefile.py test for loading truncated image and raising proper exception 2015-09-08 17:43:12 +03:00
test_imagefileio.py Replaced old-style classes 2015-05-27 00:07:21 +10:00
test_imagefont_bitmap.py Skip ImageFont_bitmap test if _imagingft C module is not installed 2015-09-08 18:00:00 +03:00
test_imagefont.py flake8 2015-07-01 22:53:18 +03:00
test_imagegrab.py Added support for ImageGrab.grab to OS X 2015-08-01 17:44:13 +10:00
test_imagemath.py Added missing future print imports and removed unnecessary imports 2015-05-23 20:28:41 +10:00
test_imagemorph.py Check that images are L mode in ImageMorph methods 2015-08-28 22:54:17 +10:00
test_imageops_usm.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_imageops.py Replaced old-style classes 2015-05-27 00:07:21 +10:00
test_imagepalette.py Further health fixes 2015-04-24 18:24:52 +10:00
test_imagepath.py Remove unused tearDownModule 2014-07-07 20:03:50 +03:00
test_imageqt.py Updated documentation URL 2015-06-19 18:28:13 +10:00
test_imagesequence.py Added various tests 2015-07-03 15:03:25 +10:00
test_imageshow.py Removed unnecessary pass lines and commented debugging lines 2015-04-24 16:02:38 +10:00
test_imagestat.py Fix tests. test_trns_p() needed assert_image_similar() in place of assert_image_equal() 2014-09-14 20:00:13 +03:00
test_imagetk.py Remove unused tearDownModule 2014-07-07 20:03:50 +03:00
test_imagewin.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_lib_image.py Use unique class names to match filenames 2014-07-20 01:17:20 +03:00
test_lib_pack.py Enable basic support for 'RGBa' raw encoding/decoding 2015-02-02 13:06:56 +03:00
test_locale.py Merge remote-tracking branch 'upstream/master' into flake8 2014-09-23 16:35:20 +03:00
test_mode_i16.py Further health fixes 2015-04-24 18:24:52 +10:00
test_numpy.py Added missing future print imports and removed unnecessary imports 2015-05-23 20:28:41 +10:00
test_olefileio.py Added various tests 2015-07-03 15:03:25 +10:00
test_pickle.py Further health fixes 2015-04-24 18:24:52 +10:00
test_psdraw.py Fixed PSDraw stdout Python 3 compatibility 2015-07-31 20:59:59 +10:00
test_pyroma.py Style/health fixes 2015-04-01 16:47:01 +03:00
test_scipy.py Various Flake8 fixes 2015-07-03 16:22:56 +10:00
test_shell_injection.py Merge branch 'master' into flake8 2014-09-14 10:23:51 +03:00
test_util.py Remove unused tearDownModule 2014-07-08 07:59:17 +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

If you're using Python 2.6, there's one additional dependency::
  
    pip install unittest2

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