Pillow/Tests/test_psdraw.py

61 lines
1.5 KiB
Python
Raw Normal View History

import os
import sys
2019-09-26 15:12:28 +03:00
from io import StringIO
2014-12-11 14:06:53 +03:00
from PIL import Image, PSDraw
from .helper import PillowTestCase
2014-12-11 14:06:53 +03:00
class TestPsDraw(PillowTestCase):
def _create_document(self, ps):
2014-12-11 14:06:53 +03:00
im = Image.open("Tests/images/hopper.ppm")
title = "hopper"
2019-06-13 18:54:46 +03:00
box = (1 * 72, 2 * 72, 7 * 72, 10 * 72) # in points
2014-12-11 14:06:53 +03:00
ps.begin_document(title)
2014-12-27 23:50:17 +03:00
# draw diagonal lines in a cross
2019-06-13 18:54:46 +03:00
ps.line((1 * 72, 2 * 72), (7 * 72, 10 * 72))
ps.line((7 * 72, 2 * 72), (1 * 72, 10 * 72))
2014-12-27 23:50:17 +03:00
2014-12-11 14:06:53 +03:00
# draw the image (75 dpi)
ps.image(box, im, 75)
ps.rectangle(box)
# draw title
ps.setfont("Courier", 36)
2019-06-13 18:54:46 +03:00
ps.text((3 * 72, 4 * 72), title)
2014-12-11 14:06:53 +03:00
ps.end_document()
def test_draw_postscript(self):
# Based on Pillow tutorial, but there is no textsize:
2017-02-11 04:47:10 +03:00
# https://pillow.readthedocs.io/en/latest/handbook/tutorial.html#drawing-postscript
# Arrange
2019-06-13 18:54:46 +03:00
tempfile = self.tempfile("temp.ps")
2016-12-28 01:54:10 +03:00
with open(tempfile, "wb") as fp:
# Act
ps = PSDraw.PSDraw(fp)
self._create_document(ps)
2014-12-11 14:06:53 +03:00
# Assert
# Check non-zero file was created
self.assertTrue(os.path.isfile(tempfile))
self.assertGreater(os.path.getsize(tempfile), 0)
2014-12-11 14:06:53 +03:00
def test_stdout(self):
# Temporarily redirect stdout
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
ps = PSDraw.PSDraw()
self._create_document(ps)
# Reset stdout
sys.stdout = old_stdout
self.assertNotEqual(mystdout.getvalue(), "")