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
ben
a4721d374f
Fixes djpeg load test
...
* Test fails with `libjpeg-turbo` and `libjpeg-progs` on Ubuntu 16.04
* Epsilon reported is 4.18...
2020-02-15 13:59:53 +11: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
nulano
6bf7f6045d
fix deprecation warnings in test_file_wmf
2020-01-01 01:55:06 +01:00
Andrew Murray
8924054dd9
Changed _limit_signed_rational
2019-12-31 19:12:33 +11:00
Andrew Murray
69fc041399
Test out of bounds signed rational
2019-12-31 19:11:03 +11:00
Alexander
fa1deca144
Fix wrong tests
2019-12-31 04:12:50 +03:00
Andrew Murray
74d53bcd15
Lint fixes
2019-12-31 11:58:39 +11:00
Andrew Murray
6d3fb7b083
Merge branch 'master' into exif-writing-fixes
2019-12-31 11:38:33 +11:00
Andrew Murray
f72e866b5e
Merge pull request #4305 from radarhere/remove_distutils
...
Replaced distutils with C version check
2019-12-31 11:33:39 +11:00
Andrew Murray
f77c409742
Renamed variable
2019-12-31 09:04:25 +11:00
Alexander
c74c20eb9f
Merge branch 'master' into reduce-in-resize
...
# Conflicts:
# docs/releasenotes/7.0.0.rst
2019-12-30 03:24:38 +03:00
Andrew Murray
2a0653ee81
Merge pull request #4311 from radarhere/wmf
...
Allow loading of WMF images at a given DPI
2019-12-30 10:24:44 +11:00
nulano
cc5c0d2c04
don't skip test fixed in pypy 7.3.0
2019-12-29 22:52:50 +01:00
Andrew Murray
61d0784933
Allow loading of WMF images at a given DPI
2019-12-28 11:25:39 +11:00
Andrew Murray
34d04d3e82
Replaced distutils with C version check
2019-12-28 09:57:49 +11:00
Alexander
222c2f6978
Merge branch 'master' into reduce-in-resize
2019-12-27 15:13:19 +03:00
Alexander Karpinsky
5f69035865
Merge pull request #4251 from uploadcare/reduce
...
Reduce operation
2019-12-27 15:11:47 +03:00
Alexander
fc0248869c
wording
2019-12-27 14:27:37 +03:00
Hugo
86be41a167
Concatenate string literals on same line
2019-12-26 17:08:36 +02:00
Andrew Murray
fedb0407b4
Raise ValueError for io.StringIO in Image.open
2019-12-26 18:53:06 +11:00
Alexander
d719aafecb
Merge branch 'reduce' into reduce-in-resize
...
# Conflicts:
# docs/releasenotes/7.0.0.rst
2019-12-25 15:45:17 +03:00
Alexander
dda5558129
Merge branch 'master' into reduce
2019-12-25 15:42:47 +03:00
Alexander Karpinsky
b5d06baa5f
Merge pull request #4231 from uploadcare/box-in-thumbnail
...
Fix thumbnail geometry when DCT scaling is used
2019-12-25 15:41:40 +03:00
Andrew Murray
ee30fe1b39
Merge pull request #4147 from beipang2/issue_4146
...
Use default DPI when exif provides invalid x_resolution
2019-12-25 20:26:27 +11:00
Andrew Murray
666b726626
Simplified conditions
2019-12-25 15:32:38 +11:00
Andrew Murray
9a72ad4fa9
Removed condition already present from inheritance
2019-12-25 15:32:26 +11:00
Andrew Murray
c35fb6fb67
Merge branch 'master' into box-in-thumbnail
2019-12-24 18:18:34 +11:00
Andrew Murray
4580b156b7
Raise an error if BMP file size is too large when saving
2019-12-21 08:37:40 +11:00
Alexander
fc28182040
fix formatting
2019-12-20 20:42:00 +03:00
Alexander
8181aed77f
Merge branch 'reduce' into reduce-in-resize
...
# Conflicts:
# docs/releasenotes/7.0.0.rst
# src/PIL/Image.py
2019-12-20 20:27:11 +03:00
Alexander
d41f2713b6
Merge branch 'master' into reduce
2019-12-20 20:22:36 +03:00
Alexander
a9d7a2be77
TestReducingGapResize
2019-12-20 20:20:28 +03:00
Alexander
b48996c213
rename max_reduce to reducing_gap
2019-12-20 14:59:18 +03:00
Alexander
b112e55070
Merge branch 'master' into box-in-thumbnail
...
# Conflicts:
# docs/releasenotes/7.0.0.rst
2019-12-19 16:36:37 +03:00
Alexander Karpinsky
6d75a673b6
Merge pull request #4255 from uploadcare/default-resample-filter
...
Change default resize resampling filter from NEAREST to BICUBIC
2019-12-19 16:33:34 +03:00
Alexander Karpinsky
c82d2629d7
Merge pull request #4278 from uploadcare/fox-filter-black-lines
...
Define box filter equal 1.0 on (-0.5, 0.5] range instead of [-0.5, 0.5)
2019-12-19 03:26:17 +03:00
Alexander
5b53b0489b
Define box filter equal 1.0 on (-0.5, 0.5] range instead of [-0.5, 0.5)
2019-12-19 03:01:02 +03:00
Alexander
4da9858709
change default resampling filter for ImageOps.pad(), ImageOps.scale() and ImageOps.fit()
2019-12-17 18:15:02 +03:00
Alexander
fa9e85cd1f
max_reduce arguments in resize and thumbnail
2019-12-17 03:01:51 +03:00
Alexander
2db5406626
Merge branch 'box-in-thumbnail' into reduce-in-resize-2
2019-12-17 02:27:44 +03:00
Alexander
ea9c6e9fe1
Merge branch 'master' into reduce
2019-12-17 02:26:05 +03:00
Alexander
b35cbef234
modify the test image
2019-12-17 02:25:40 +03:00
Alexander
a027897f74
Merge branch 'master' into box-in-thumbnail
...
# Conflicts:
# Tests/test_image_thumbnail.py
2019-12-17 00:42:29 +03:00
Andrew Murray
c7bef264bc
Allow thumbnail to accept non-integer size arguments
2019-12-17 06:05:36 +11:00
Alexander
791d1a2846
Better thumbnail aspect ratio preservation
2019-12-07 20:07:27 +03:00
Alexander
ac92836e81
Change default resize resampling filter
2019-12-07 18:08:19 +03:00
Alexander
5283538fe4
unused import
2019-12-05 22:20:01 +03:00
Alexander
e54b9b3720
turn on ImagingReduce5x5 special case
2019-12-05 22:13:25 +03:00
Alexander
b655e81d39
not square test image
2019-12-05 14:30:17 +03:00
Alexander
5283141417
Merge branch 'master' into reduce
2019-12-05 14:23:28 +03:00
Alexander
5838d77c0e
args test
2019-12-05 03:24:38 +03:00
Alexander
778b5f9fed
add box parameter
2019-12-04 23:13:20 +03:00
Alexander
cc30b1e55a
Add La mode packing and unpacking
2019-12-04 22:58:09 +03:00
Alexander
a4a6a9e83a
Add La mode packing and unpacking
2019-12-04 22:47:15 +03:00
Andrew Murray
4551d3aeb3
Merge pull request #4173 from hugovk/cover-tests
...
Include tests in coverage reports
2019-12-03 06:41:54 +11:00
Hugo
ebed90c228
Remove redundant files
2019-12-02 15:26:51 +02:00
Alexander
d92c58fa7f
I mode support
2019-12-01 22:52:43 +03:00
Alexander
a576b14056
F mode support
2019-12-01 22:28:16 +03:00
Alexander Karpinsky
d970a39840
Special cases:
...
ImagingReduce1x2, ImagingReduce1x3, ImagingReduce2x1, ImagingReduce3x1
2019-12-01 21:41:15 +03:00
Alexander
1d1f3be27a
unsupported modes
2019-12-01 20:34:05 +03:00
Alexander
008c1c88e2
L mode support
2019-12-01 20:33:48 +03:00
Alexander
a241f1ed8e
complete tests for supported modes
2019-12-01 19:13:34 +03:00
Andrew Murray
2d7cfc4bbc
Merge pull request #4239 from radarhere/photoshop
...
Handle broken Photoshop data
2019-12-01 07:33:26 +11:00
Andrew Murray
08cad40002
Merge pull request #4181 from pwohlhart/patch-1
...
Better error messaging in PIL.Image.fromarray
2019-11-30 21:12:05 +11:00
Hugo van Kemenade
a776255a90
Merge pull request #4240 from radarhere/mpo
...
Raise a specific exception if no data is found for an MPO frame
2019-11-30 11:25:46 +02:00
Andrew Murray
47b2ae9a63
Raise a specific exception if no data is found for an MPO frame
2019-11-30 11:05:36 +11:00
Andrew Murray
e51be50549
Handle broken Photoshop data
2019-11-30 10:08:32 +11:00
Alexander
8b6ad4a471
tests for supported modes
2019-11-26 03:39:57 +03:00
Andrew Murray
c0048ad7de
Use context managers
2019-11-26 07:03:23 +11:00
Alexander
c23f29481c
try to deal with different libjpeg version
2019-11-24 15:34:12 +03:00
Alexander
e234445682
linter fixes
2019-11-24 15:32:45 +03:00
Hugo van Kemenade
37be3b0dda
Merge pull request #4145 from nulano/ucs4-pypy
...
Fix Unicode support for PyPy
2019-11-24 13:51:27 +02:00
Alexander
fd21de7dc4
Merge branch 'refs/heads/master' into box-in-thumbnail
...
# Conflicts:
# Tests/test_image_thumbnail.py
2019-11-24 05:27:13 +03:00
Alexander
375556ffb5
use a box from draft in thumbnail
2019-11-24 05:24:00 +03:00
Alexander
4126f6cdf7
return chosen image mode and the box of the image
2019-11-24 04:55:49 +03:00
Jon Dufresne
33dabf986f
Import unittest from stdlib rather than helper.py
...
The unittest in helper.py has not offered an interesting abstraction
since dbe9f85c7d
so import from the more
typical stdlib location.
2019-11-20 18:42:52 -08:00
nulano
837d8ae984
fix support for extended unicode characters in PyPy
2019-11-20 17:02:44 +00:00
Hugo
106fc4085f
Remove redundant files
2019-11-20 17:28:37 +02:00
Hugo
a1c6b5edf7
Cover tests https://nedbatchelder.com/blog/201908/dont_omit_tests_from_coverage.html
2019-11-20 17:28:12 +02:00
Hugo van Kemenade
a949d7882e
Merge branch 'master' into rm-2.7
2019-11-20 10:26:55 +02:00
Andrew Murray
40f891dfd7
Added UnidentifiedImageError
2019-11-19 21:20:02 +11:00
Hugo
e5486b40f8
Merge remote-tracking branch 'upstream/master' into rm-2.7
2019-11-18 13:56:42 +02:00
nulano
197fb91574
upload image errors to GitHub Actions
2019-11-17 21:49:58 +11:00
Hugo
12a725988e
Merge remote-tracking branch 'upstream/master' into rm-2.7
2019-11-16 17:10:10 +02:00
Hugo van Kemenade
b64d96d414
Merge pull request #4116 from radarhere/memory
...
Fixed freeing unallocated pointer when resizing with height too large
2019-11-13 20:29:09 +02:00
Hugo van Kemenade
54e57768ab
Merge pull request #4128 from radarhere/info
...
Copy info in Image.transform
2019-11-13 20:27:51 +02:00
Hugo van Kemenade
ce18064b20
Merge pull request #4171 from radarhere/gamma
...
Corrected DdsImagePlugin setting info gamma
2019-11-13 20:26:03 +02:00
Andrew Murray
d79f2bb7dc
Corrected context manager test
2019-11-06 20:12:19 +11:00
Hugo van Kemenade
3663af1967
Merge pull request #4189 from cgohlke/patch-1
...
Report details about Pillow when running tests
2019-11-05 13:01:02 +02:00
Hugo van Kemenade
5006401d0b
Merge branch 'master' into rm-2.7
2019-11-03 22:48:26 +02:00
Christoph Gohlke
5d10f8dff2
Use features.pilinfo to report details about Pillow
2019-11-02 15:12:52 -07:00
Hugo van Kemenade
6060ed3d14
Merge pull request #4091 from nulano/libimagequant-features
...
Add libimagequant to features.py
2019-11-02 21:31:09 +02:00
Andrew Murray
b1ee44a74b
Ignore UserWarnings
2019-11-02 18:10:55 +11:00
Christoph Gohlke
579b6cac60
Report details about Pillow when running tests
2019-11-01 23:06:51 -07:00
Hugo
b4f93cf140
Upgrade Python syntax with pyupgrade --py3-plus
2019-11-01 13:54:19 +02:00
Hugo
cc63f66575
Merge remote-tracking branch 'upstream/master' into rm-2.7
2019-11-01 13:22:56 +02:00
Hugo van Kemenade
2cf510e596
Improve handling of file resources ( #3577 )
...
Improve handling of file resources
2019-11-01 12:07:53 +02:00
Andrew Murray
b65fcb280a
Copy info in transform
2019-10-30 22:14:01 +11:00
Andrew Murray
d716278d20
Corrected DdsImagePlugin setting info gamma
2019-10-30 22:13:06 +11:00
Andrew Murray
511aed922a
Fixed freeing unallocated pointer when resizing with height too large
2019-10-30 22:09:28 +11:00
Andrew Murray
9b20276c45
Allow for arr KeyError
2019-10-30 07:23:08 +11:00
Bei Pang
f53b86b673
Removed TypeError exception check in JpegImagePlugin; Updated comments in test
2019-10-28 09:48:37 -07:00
Bei Pang
bcc766e02d
Use default DPI when exif provides invalid x_resolution
2019-10-27 07:50:30 +11:00
Hugo van Kemenade
40133cfc74
Merge branch 'master' into rm-2.7
2019-10-26 09:07:44 +03:00
Jon Dufresne
cae17eb927
Use more Pythonic super() instead of referencing parent class
...
https://rhettinger.wordpress.com/2011/05/26/super-considered-super/
2019-10-22 06:54:58 -07:00
Hugo van Kemenade
1a9be9ccbd
Simpilify PillowTestCase.delete_tempfile for pytest ( #4139 )
...
Simpilify PillowTestCase.delete_tempfile for pytest
2019-10-22 14:14:20 +03:00
Hugo van Kemenade
28ff798889
Merge branch 'master' into rm-2.7
2019-10-15 12:11:43 +03:00
Jon Dufresne
9981568982
Simpilify PillowTestCase.delete_tempfile for pytest
...
As the test suite always runs with pytest now, self.currentResult is
always None. Using this, can remove unused code.
2019-10-12 11:13:14 -07:00
Jon Dufresne
4cd4adddc3
Improve handling of file resources
...
Follow Python's file object semantics. User code is responsible for
closing resources (usually through a context manager) in a deterministic
way.
To achieve this, remove __del__ functions. These functions used to
closed open file handlers in an attempt to silence Python
ResourceWarnings. However, using __del__ has the following drawbacks:
- __del__ isn't called until the object's reference count reaches 0.
Therefore, resource handlers remain open or in use longer than
necessary.
- The __del__ method isn't guaranteed to execute on system exit. See the
Python documentation:
https://docs.python.org/3/reference/datamodel.html#object.__del__
> It is not guaranteed that __del__() methods are called for objects
> that still exist when the interpreter exits.
- Exceptions that occur inside __del__ are ignored instead of raised.
This has the potential of hiding bugs. This is also in the Python
documentation:
> Warning: Due to the precarious circumstances under which __del__()
> methods are invoked, exceptions that occur during their execution
> are ignored, and a warning is printed to sys.stderr instead.
Instead, always close resource handlers when they are no longer in use.
This will close the file handler at a specified point in the user's code
and not wait until the interpreter chooses to. It is always guaranteed
to run. And, if an exception occurs while closing the file handler, the
bug will not be ignored.
Now, when code receives a ResourceWarning, it will highlight an area
that is mishandling resources. It should not simply be silenced, but
fixed by closing resources with a context manager.
All warnings that were emitted during tests have been cleaned up. To
enable warnings, I passed the `-Wa` CLI option to Python. This exposed
some mishandling of resources in ImageFile.__init__() and
SpiderImagePlugin.loadImageSeries(), they too were fixed.
2019-10-12 08:27:17 -07:00
Jon Dufresne
0affbacd5e
Remove unused arguments from PillowTestCase.skipKnwonBadTest()
2019-10-12 08:17:20 -07:00
nulano
accbe58b5e
add Python version to selftest, rename brief parameter
2019-10-12 15:40:12 +01:00
Andrew Murray
4140cd807b
Merge branch 'master' into rm-2.7
2019-10-12 18:03:58 +11:00
Hugo
3e24c5fea4
Replace isStringType(t) with isinstance(t, str)
...
Co-Authored-By: Jon Dufresne <jon.dufresne@gmail.com>
2019-10-08 17:26:52 +03:00
Hugo
3a34081db5
Simplify temporary directory cleanup
...
Co-Authored-By: Jon Dufresne <jon.dufresne@gmail.com>
2019-10-08 17:25:55 +03:00
Hugo
84e53e3757
Simplify using subprocess.DEVNULL
...
Co-Authored-By: Jon Dufresne <jon.dufresne@gmail.com>
2019-10-08 17:25:42 +03:00
nulano
a0a5601689
Merge branch 'master' into gha-win
2019-10-08 12:56:43 +01:00
Andrew Murray
6cd99fc3cf
Merge branch 'master' into rm-2.7
2019-10-08 18:57:27 +11:00
Jon Dufresne
64032061c0
Move several imports to the top-level of the file
...
This better follows PEP 8 style guide:
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.
This also avoids duplicate import code within the same file.
2019-10-07 06:28:36 -07:00
Hugo
4382413bb4
Remove redundant bytearray
2019-10-07 16:23:43 +03:00
Hugo
865b17d5cf
Remove Python 2-compatibility code
2019-10-07 16:23:22 +03:00
Hugo
74d2767c57
Remove duplicate line
2019-10-07 14:30:59 +03:00
Hugo
538d9e2e5d
Upgrade Python syntax with pyupgrade --py3-plus
2019-10-07 14:30:59 +03:00
Hugo
af770a6c55
Drop support for EOL Python 2.7
2019-10-07 14:30:59 +03:00
Jon Dufresne
922f55c265
Use bytes literals instead of bytes(str)
...
Bytes literals are available on all supported Python versions. Rather
than convert strings literals to bytes at runtime, simply use a bytes
literal.
2019-10-06 19:26:55 -07:00
Andrew Murray
e8cf9a6bc1
Merge pull request #4108 from hugovk/rm-deprecated-qt
...
Drop support for EOL PyQt4 and PySide
2019-10-07 12:35:56 +11:00
Jon Dufresne
c50a309a10
Remove duplicate cleanup in test_decompression_bomb.py
...
The same cleanup is done in the teardDown() method. There is no need to
do it a 2nd time.
2019-10-06 10:24:48 -07:00
Andrew Murray
732eb7223f
Merge branch 'master' into rm-deprecated-qt
2019-10-06 13:35:38 +11:00
Andrew Murray
d6ae0a99a7
Removed deprecated setting of TIFF image sizes
2019-10-03 22:12:28 +10:00
Andrew Murray
e487ed7fef
Removed deprecation test
2019-10-02 22:01:31 +10:00
Hugo
f0a87e25a4
Drop support for EOL PyQt4 and PySide
2019-09-30 17:58:31 +03:00
Andrew Murray
cc16025e23
Merge pull request #4104 from radarhere/overrun
...
Catch buffer overruns
2019-09-30 23:33:28 +10:00
Andrew Murray
fb8470187a
Merge pull request #4034 from cgohlke/patch-1
...
Initialize rows_per_strip when RowsPerStrip tag is missing
2019-09-30 22:32:34 +10:00
Andrew Murray
b9693a51c9
Merge pull request #4103 from radarhere/dimension
...
Raise error if TIFF dimension is a string
2019-09-30 21:26:53 +10:00
Andrew Murray
f228d0ccbf
Merge pull request #4102 from radarhere/decompression
...
Added decompression bomb checks
2019-09-30 20:31:05 +10:00
Andrew Murray
9a977b975c
Raise error if dimension is a string
2019-09-30 18:48:10 +10:00
Andrew Murray
ab52630d06
Catch buffer overruns
2019-09-30 18:45:43 +10:00
Andrew Murray
eed2bfc5b4
Added decompression bomb checks
2019-09-30 18:45:13 +10:00
Andrew Murray
87c43b66a5
Corrected negative seeks
2019-09-30 18:31:18 +10:00
Andrew Murray
4de10089f0
Moved libtiff test into libtiff test file
2019-09-29 21:06:11 +10:00
Hugo van Kemenade
d3ae7a1c46
Merge pull request #4088 from radarhere/fit
...
Do not calculate the crop width in Image.fit if it is already known
2019-09-29 12:57:29 +03:00