Added unit tests for ImageWidthError

This commit is contained in:
Romain Porte 2017-05-22 21:20:22 +02:00
parent a8ab2da3cf
commit 14c7dfe58f
3 changed files with 26 additions and 3 deletions

View File

@ -101,7 +101,7 @@ class Escpos(object):
im = EscposImage(img_source) im = EscposImage(img_source)
try: try:
max_width = self.profile.profile_data['media']['width']['pixels'] max_width = self.profile.profile_data['media']['width']['pixels']
if im.width > max_width: if im.width > max_width:
raise ImageWidthError('{} > {}'.format(im.width, max_width)) raise ImageWidthError('{} > {}'.format(im.width, max_width))
except KeyError: except KeyError:

View File

@ -107,7 +107,7 @@ class ImageSizeError(Error):
class ImageWidthError(Error): class ImageWidthError(Error):
""" Image width is too large. """ Image width is too large.
The return code for this exception is `41`. The return code for this exception is `41`.
""" """
def __init__(self, msg=""): def __init__(self, msg=""):

View File

@ -12,9 +12,13 @@ from __future__ import division
from __future__ import print_function from __future__ import print_function
from __future__ import unicode_literals from __future__ import unicode_literals
import escpos.printer as printer import pytest
from PIL import Image from PIL import Image
import escpos.printer as printer
from escpos.exceptions import ImageWidthError
# Raster format print # Raster format print
def test_bit_image_black(): def test_bit_image_black():
@ -139,3 +143,22 @@ def test_large_graphics():
instance = printer.Dummy() instance = printer.Dummy()
instance.image('test/resources/black_white.png', impl="bitImageRaster", fragment_height=1) instance.image('test/resources/black_white.png', impl="bitImageRaster", fragment_height=1)
assert(instance.output == b'\x1dv0\x00\x01\x00\x01\x00\xc0\x1dv0\x00\x01\x00\x01\x00\x00') assert(instance.output == b'\x1dv0\x00\x01\x00\x01\x00\xc0\x1dv0\x00\x01\x00\x01\x00\x00')
def test_width_too_large():
"""
Test printing an image that is too large in width.
"""
instance = printer.Dummy()
instance.profile.profile_data = {
'media': {
'width': {
'pixels': 384
}
}
}
with pytest.raises(ImageWidthError):
instance.image(Image.new("RGB", (385, 200)))
instance.image(Image.new("RGB", (384, 200)))