Pillow/Tests/test_features.py

70 lines
2.4 KiB
Python
Raw Normal View History

from .helper import unittest, PillowTestCase
2015-05-15 00:33:17 +03:00
from PIL import features
2017-05-12 00:34:21 +03:00
try:
from PIL import _webp
HAVE_WEBP = True
2018-10-02 11:36:07 +03:00
except ImportError:
2017-05-12 00:34:21 +03:00
HAVE_WEBP = False
2017-09-01 14:05:40 +03:00
2015-05-15 00:33:17 +03:00
class TestFeatures(PillowTestCase):
2017-05-12 00:34:21 +03:00
def test_check(self):
# Check the correctness of the convenience function
for module in features.modules:
self.assertEqual(features.check_module(module),
features.check(module))
for codec in features.codecs:
self.assertEqual(features.check_codec(codec),
features.check(codec))
for feature in features.features:
self.assertEqual(features.check_feature(feature),
features.check(feature))
@unittest.skipUnless(HAVE_WEBP, "WebP not available")
2018-10-21 16:44:12 +03:00
def test_webp_transparency(self):
2017-05-12 00:34:21 +03:00
self.assertEqual(features.check('transp_webp'),
not _webp.WebPDecoderBuggyAlpha())
self.assertEqual(features.check('transp_webp'),
_webp.HAVE_TRANSPARENCY)
@unittest.skipUnless(HAVE_WEBP, "WebP not available")
2018-10-21 16:44:12 +03:00
def test_webp_mux(self):
2017-05-12 00:34:21 +03:00
self.assertEqual(features.check('webp_mux'),
_webp.HAVE_WEBPMUX)
2017-09-01 14:05:40 +03:00
@unittest.skipUnless(HAVE_WEBP, "WebP not available")
2018-10-21 16:44:12 +03:00
def test_webp_anim(self):
self.assertEqual(features.check('webp_anim'),
_webp.HAVE_WEBPANIM)
2017-05-12 00:34:21 +03:00
def test_check_modules(self):
2015-05-15 00:33:17 +03:00
for feature in features.modules:
2017-05-12 00:34:21 +03:00
self.assertIn(features.check_module(feature), [True, False])
2015-05-15 00:33:17 +03:00
for feature in features.codecs:
self.assertIn(features.check_codec(feature), [True, False])
2015-05-15 00:33:17 +03:00
2017-05-12 00:34:21 +03:00
def test_supported_modules(self):
self.assertIsInstance(features.get_supported_modules(), list)
self.assertIsInstance(features.get_supported_codecs(), list)
2017-05-12 00:34:21 +03:00
self.assertIsInstance(features.get_supported_features(), list)
self.assertIsInstance(features.get_supported(), list)
2015-05-15 00:33:17 +03:00
2015-05-15 11:42:36 +03:00
def test_unsupported_codec(self):
# Arrange
codec = "unsupported_codec"
# Act / Assert
2017-09-01 14:05:40 +03:00
self.assertRaises(ValueError, features.check_codec, codec)
2015-05-15 11:42:36 +03:00
def test_unsupported_module(self):
# Arrange
module = "unsupported_module"
# Act / Assert
2017-09-01 14:05:40 +03:00
self.assertRaises(ValueError, features.check_module, module)
2015-05-15 11:42:36 +03:00
2015-05-15 00:33:17 +03:00
if __name__ == '__main__':
unittest.main()