Commit Graph

2774 Commits

Author SHA1 Message Date
Andrew Murray
e41cfade29 Add JPEG comment to info dictionary 2020-03-07 06:57:29 +11:00
Hugo van Kemenade
3f9b615349
Merge pull request #4404 from orlnub123/bugfix/thumbnail
Fix size calculation of Image.thumbnail()
2020-03-06 00:33:03 +02:00
Hugo van Kemenade
da4667cc9e
Merge pull request #4401 from radarhere/freetype
Fixed stroke on FreeType < 2.9
2020-03-06 00:21:17 +02:00
Hugo van Kemenade
3b30b88c7f
Merge pull request #4454 from radarhere/bbox
If present, only use alpha channel for bounding box
2020-03-05 12:38:52 +02:00
Andrew Murray
686d85be08
Merge pull request #4462 from hugovk/to-pytest
Convert to use pytest
2020-03-05 19:39:13 +11:00
Hugo van Kemenade
94d0c7c9ff
Merge pull request #45 from radarhere/to-pytest
Converted setup and teardown methods
2020-03-04 13:42:49 +02:00
Hugo
fbd4ca1ba0 Fix roundtrip 2020-03-04 13:21:23 +02:00
Andrew Murray
76734573f0 Converted setup and teardown methods 2020-03-04 21:31:50 +11:00
Hugo van Kemenade
974233be45
Merge pull request #4438 from jdufresne/warning
Warn on typos passed to features.check()
2020-03-02 21:26:17 +02:00
Hugo
2cc6a9a974 Convert to use pytest 2020-03-02 16:31:08 +02:00
Hugo van Kemenade
54b4b98455
Merge pull request #4448 from radarhere/pytest
Converted to pytest
2020-03-02 12:23:28 +02:00
Hugo van Kemenade
64a9e0c660
Merge branch 'master' into apng 2020-02-29 17:40:17 +02:00
Andrew Murray
42a0653097 Fixed endian handling for I;16 getextrema 2020-02-29 20:29:28 +11:00
Andrew Murray
b934b50867 If an alpha channel is present, only use that to get bounding box 2020-02-28 22:33:02 +11:00
Andrew Murray
1c1ad65a96
Merge pull request #4424 from hugovk/fix-im-long-name
Fix saving IM images in dir with long path
2020-02-27 20:27:44 +11:00
Andrew Murray
9ba25f8135 Trim end of name, keeping ext 2020-02-26 20:15:23 +11:00
Hugo van Kemenade
3c995fd173
Merge pull request #4440 from radarhere/jpeg_quality
Allow saving of zero quality JPEG images
2020-02-25 12:02:53 +02:00
Andrew Murray
09b9198176 Converted to pytest 2020-02-25 20:57:27 +11:00
Andrew Murray
17c10b0ca0 Fixed stroke on FreeType < 2.9 2020-02-24 22:49:33 +11:00
Hugo van Kemenade
12f66f44f4
Fix regression
Co-Authored-By: Andrew Murray <3112309+radarhere@users.noreply.github.com>
2020-02-23 10:31:54 +02:00
Andrew Murray
41a29339ff Lint fixes 2020-02-23 15:14:42 +11:00
Peter Rowlands
9b72f0513c Adjust is_animated behavior
- Make is_animated APNG behavior consistent with other Pillow formats
- is_animated will be true when n_frames is greater than 1 (for APNG
  this depends on animation frame count + presence or absence of a
  default image)
2020-02-23 15:14:06 +11:00
Peter Rowlands
d05b73cd08 Use context manager for APNG tests 2020-02-23 15:14:06 +11:00
Peter Rowlands
0f84fa7707 Move apng tests into test_file_apng.py 2020-02-23 15:14:06 +11:00
Peter Rowlands
00fcc53a1d Fix lint errors 2020-02-23 15:14:06 +11:00
Peter Rowlands
66c84f258b Add test for saving split fdat chunks 2020-02-23 15:14:06 +11:00
Peter Rowlands
7c0df1034f Add APNG test cases
Includes tests for reading and writing APNG files.

The tests for reading files are based on the APNG browser compatibility
tests from https://philip.html5.org/tests/apng/tests.html
(which is linked in the Tests section of https://wiki.mozilla.org/APNG_Specification)
2020-02-23 15:14:06 +11:00
Hugo
44e661f25a Convert to use pytest 2020-02-22 23:03:01 +02:00
Hugo
699a9dadf1 Convert asserts 2020-02-22 18:07:04 +02:00
Andrew Murray
8482919a37 Converted most assert statements to pytest 2020-02-23 00:06:21 +11:00
orlnub123
8f21d0ddf0 Improve rounding 2020-02-21 23:38:38 +00:00
Andrew Murray
a8c0794107 Allow saving of zero quality JPEG images 2020-02-21 22:05:44 +11:00
Hugo van Kemenade
f43efb0aec
_webp not needed in this file
Co-Authored-By: Andrew Murray <3112309+radarhere@users.noreply.github.com>
2020-02-20 12:24:46 +02:00
Hugo
2d5e479bcc Merge remote-tracking branch 'upstream/master' into pytest.importorskip 2020-02-19 19:26:52 +02:00
Andrew Murray
c516134890 Rearranged code for Windows 2020-02-19 20:56:23 +11:00
Andrew Murray
c6749183f8 Updated tests 2020-02-19 19:52:07 +11:00
Dag Wästberg
2e02500fa6 change function names to snake_case 2020-02-19 19:38:53 +11:00
Dag Wästberg
23c9da5264 add Overlay chop 2020-02-19 19:34:13 +11:00
Dag Wästberg
705140cc2c add hardlight and softlight chops 2020-02-19 19:30:59 +11:00
Dag Wästberg
13c1b7070d add Overlay chop 2020-02-19 19:24:36 +11:00
Dag Wästberg
5e5dfbad81 add hardlight and softlight chops 2020-02-19 19:23:09 +11:00
Jon Dufresne
c057ad1535 Warn on typos passed to features.check()
If the feature isn't one of the recognized types, a UserWarning is
emitted.
2020-02-18 19:48:48 -08:00
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
Jon Dufresne
f72e64b90b Remove unnecessary setup_module() from test_file_tar.py
The test_sanity() already checks the decorder exists and the other tests
can run without zlib/jpeg installed.
2020-02-18 13:02:30 -08:00
Jon Dufresne
967f46d1d8 Remove unnecessary skip test logic
The gif_encoder and gif_decoder are always compiled and included in
src/_imaging.c.
2020-02-18 13:02:30 -08:00
Hugo van Kemenade
2d4b4576aa
Merge pull request #4428 from jdufresne/use-mock
Replace SimplePatcher with builtin unittest.mock module
2020-02-18 16:08:28 +02:00
Hugo
d289a5b072 Convert to use pytest 2020-02-18 15:50:34 +02:00
Hugo
17c67a2cfb Use pytest.importorskip to skip on a missing import dependency 2020-02-18 14:30:56 +02:00
Hugo van Kemenade
8ec548d163
Merge pull request #4431 from jdufresne/top
Move safe imports to the top of test files
2020-02-17 22:34:57 +02:00
Hugo van Kemenade
9f2d478f03
Merge pull request #4429 from jdufresne/cpickle
Remove testing of Python-2-only cPickle module
2020-02-17 21:48:43 +02:00
Jon Dufresne
98a2081a78 Move safe imports to the top of test files
These modules are safe to import and this better follows PEP 8.

From https://www.python.org/dev/peps/pep-0008/#imports

> Imports are always put at the top of the file, just after any module
> comments and docstrings, and before module globals and constants.
2020-02-17 10:49:27 -08:00
Jon Dufresne
9e856b8a72 Remove testing of Python-2-only cPickle module
In Python 3, cPickle and pickle have been merged to a single module.

From https://docs.python.org/3/whatsnew/3.0.html#library-changes

> A common pattern in Python 2.x is to have one version of a module
> implemented in pure Python, with an optional accelerated version
> implemented as a C extension; for example, pickle and cPickle. This
> places the burden of importing the accelerated version and falling
> back on the pure Python version on each user of these modules. In
> Python 3.0, the accelerated versions are considered implementation
> details of the pure Python versions. Users should always import the
> standard version, which attempts to import the accelerated version and
> falls back to the pure Python version. The pickle / cPickle pair
> received this treatment.

Can now move the 'import pickle' to the top of the test file.
2020-02-17 10:27:36 -08:00
Jon Dufresne
1a3ebafdd2 Replace SimplePatcher with builtin unittest.mock module
The class more or less duplicates the features of the mock module. Can
avoid the duplication by using the stdlib.
2020-02-17 10:06:19 -08:00
Jon Dufresne
6121daa72d Remove redundant str() call
The %s placeholder already coerces arguments to a string.
2020-02-17 09:18:49 -08:00
Hugo
946a038b13 Replace unittest with pytest 2020-02-17 10:42:33 +02:00
Hugo
eb2d6560a4 Replace unittest with pytest 2020-02-17 00:55:52 +02:00
orlnub123
64c08f4dba Fix test 2020-02-16 21:26:40 +11:00
orlnub123
6d3c7d6941 Add test against upscaling 2020-02-16 21:26:17 +11:00
orlnub123
e9ef1d236d Fix size calculation of Image.thumbnail() 2020-02-16 21:25:51 +11:00
Andrew Murray
8e81e0dd0e Restored test 2020-02-16 13:44:34 +11:00
Hugo
9087599e60 Merge remote-tracking branch 'upstream/master' into pytest 2020-02-15 16:56:21 +02:00
Hugo van Kemenade
852d9156bc
Remove commas
Co-Authored-By: Andrew Murray <3112309+radarhere@users.noreply.github.com>
2020-02-15 16:21:37 +02:00
Hugo van Kemenade
0e993c4740
Merge pull request #4334 from radarhere/outline_width
Allow explicit zero width to hide outline
2020-02-15 14:30:12 +02:00
Andrew Murray
f958e2f8ed Return strings or bytes from ContainerIO according to the file object mode 2020-02-15 22:13:10 +11:00
Jon Dufresne
e817ed0d3e Correct str/bytes mixup in ContainerIO
Image data is expected to be read in bytes mode, not text mode so
ContainerIO should return bytes in all methods. The passed in file
handler is expected to be opened in bytes mode (as TarIO already does).
2020-02-15 22:13:10 +11:00
Andrew Murray
919abe2555 Updated test 2020-02-15 21:17:26 +11:00
Hugo van Kemenade
c57e4b3a85
Merge pull request #4333 from radarhere/polygon
Only draw each polygon pixel once
2020-02-15 11:57:14 +02:00
Jon Dufresne
e544fd5fb7 Simplify command discovery with stdlib shutil.which()
Use the builtin shutil.which() instead of reimplementing.

For the single use that used the output of the command, use
subprocess.run().
2020-02-14 14:55:46 -08:00
Hugo
affade7595 Replace unittest with pytest 2020-02-13 12:15:05 +02:00
Hugo van Kemenade
098406c304
Merge pull request #4390 from jdufresne/resource-warning
Fix ResourceWarning emitted during tests
2020-02-12 17:10:51 +02:00
Hugo
38bf862185 Replace PillowTestCase.assert_warning with pytest.warns 2020-02-03 11:11:32 +02:00
Hugo
a4bf9fa036 Convert most PillowTestCase methods to pytest 2020-02-02 12:26:01 +02:00
Hugo van Kemenade
f6e067b3b4
Merge pull request #4391 from radarhere/pytest
Convert various tests to pytest style
2020-01-28 18:22:11 +02:00
Andrew Murray
eeb2588fe2
Corrected skip condition
Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com>
2020-01-28 19:59:41 +11:00
Alexander Karpinsky
5965437402
Merge pull request #4370 from uploadcare/jpeg-multiple-app13
Handle multiple and malformed JPEG APP13 markers
2020-01-27 15:46:36 +03:00
Andrew Murray
7fd9663198 Convert various tests to pytest style 2020-01-27 22:46:52 +11:00
Jon Dufresne
2b84221edf Fix ResourceWarning emitted during tests
Appeared in the form:

    ResourceWarning: unclosed file <_io.BufferedReader name='Tests/images/invalid-exif-without-x-resolution.jpg'>

Enable all warnings to always display during tests to help catch these
warnings earlier.
2020-01-26 16:00:46 -08:00
Hugo van Kemenade
22a6738a81
Merge pull request #4369 from jdufresne/pytest
Convert some tests to pytest style
2020-01-26 20:18:37 +02:00
Jon Dufresne
63729766c4 Remove unnecessary coerce to float
In Python 3, the division operator is floating point division. No longer
need to coerce integers to floating point numbers before division.
2020-01-26 06:33:18 -08:00
Alexander
73171f5046 add test image 2020-01-20 17:25:40 +03:00
Jon Dufresne
2c50723f14 Convert some tests to pytest style
To better follow conventional pytest style, this removes the outer
wrapper class in favor of a function for some tests. These tests were
picked as they are relatively simple and presented no barriers to a
quick port. The assert* methods are replaced with assert statements.
When necessary, a fixture is used to create a temporary directory.

This commit does not convert the entire test suite to this style as some
test classes use methods or other advanced features that are difficult
to automatically convert. The goal is to address these issues in
followup commits.

Refs #4193
2020-01-18 12:12:10 -08:00
Andrew Murray
760bc7dd38 Test seek errors 2020-01-14 21:38:17 +11:00
Andrew Murray
f3f9190de7 Roundtrip test hotspot 2020-01-14 21:38:17 +11:00
Andrew Murray
dbd3c7c9b9 Test saving with incorrect mode 2020-01-14 21:38:17 +11:00
Andrew Murray
9bed79e426 Test grab bbox 2020-01-14 21:38:17 +11:00
Andrew Murray
5439091355 Simplified code 2020-01-14 20:20:30 +11:00
Andrew Murray
a5f036abf4 Moved messages into assert method calls 2020-01-14 20:20:19 +11:00
Andrew Murray
d324560891 Removed print 2020-01-14 19:44:10 +11:00
Andrew Murray
a4f06b93f9 Removed unused function 2020-01-14 19:40:21 +11:00
Hugo
5e9336af4c Use sys.byteorder == "big" 2020-01-08 15:43:28 +02:00
Hugo
f96763826c Test on new Travis CPUs https://blog.travis-ci.com/2019-11-12-multi-cpu-architecture-ibm-power-ibm-z 2020-01-08 15:43:27 +02:00
Andrew Murray
56f30ef792 Allow explicit zero width to hide outline 2020-01-08 21:55:15 +11:00
Andrew Murray
8e8f63d4a5 Only draw each polygon pixel once 2020-01-05 17:43:51 +11:00
Andrew Murray
b9c68540dc Overflow checks for realloc for tiff decoding 2020-01-02 15:24:46 +11:00
Andrew Murray
be44f0d992 Catch SGI buffer overruns 2020-01-02 15:24:36 +11:00
Andrew Murray
8f0c8f7311 Catch PCX P mode buffer overrun 2020-01-02 15:24:16 +11:00
Andrew Murray
c40bc25847 Catch FLI buffer overrun 2020-01-02 15:23:36 +11:00
Andrew Murray
138bd714f5 Raise an error for an invalid number of bands in FPX image 2020-01-02 15:20:24 +11:00
Andrew Murray
4203845a24
Merge pull request #4320 from uploadcare/rgb2l-rounding-error
Fix rounding error on RGB to L conversion
2020-01-01 20:09:34 +11:00
Andrew Murray
e8bb2dd93e Allow string comment when saving GIF 2020-01-01 13:29:39 +11:00