from __future__ import division from helper import unittest, PillowLeakTestCase import sys from PIL import Image, features, ImageDraw, ImageFont @unittest.skipIf(sys.platform.startswith('win32'), "requires Unix or macOS") class TestTTypeFontLeak(PillowLeakTestCase): # fails at iteration 3 in master iterations = 10 mem_limit = 4096 # k def _test_font(self, font): im = Image.new('RGB', (255, 255), 'white') draw = ImageDraw.ImageDraw(im) self._test_leak(lambda: draw.text((0, 0), "some text "*1024, # ~10k font=font, fill="black")) @unittest.skipIf(not features.check('freetype2'), "Test requires freetype2") def test_leak(self): ttype = ImageFont.truetype('Tests/fonts/FreeMono.ttf', 20) self._test_font(ttype) class TestDefaultFontLeak(TestTTypeFontLeak): # fails at iteration 37 in master iterations = 100 mem_limit = 1024 # k def test_leak(self): default_font = ImageFont.load_default() self._test_font(default_font) if __name__ == '__main__': unittest.main()