280 lines
8.7 KiB
Python
280 lines
8.7 KiB
Python
|
from __future__ import absolute_import
|
||
|
from __future__ import division
|
||
|
from __future__ import print_function
|
||
|
from __future__ import unicode_literals
|
||
|
|
||
|
import six
|
||
|
|
||
|
import escpos.printer as printer
|
||
|
from escpos.constants import TXT_NORMAL, TXT_STYLE, SET_FONT
|
||
|
from escpos.constants import TXT_SIZE
|
||
|
|
||
|
|
||
|
# Default test, please copy and paste this block to test set method calls
|
||
|
|
||
|
def test_default_values():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set()
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert(instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
# Size tests
|
||
|
|
||
|
def test_set_size_2h():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(size='2h')
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['2h'], # Double height text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
def test_set_size_2w():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(size='2w')
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['2w'], # Double width text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
def test_set_size_2x():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(size='2x')
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['2x'], # Double text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
def test_set_size_custom():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(size='custom', width=8, height=7)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_SIZE, # Custom text size, no normal reset
|
||
|
six.int2byte(TXT_STYLE['width'][8] + TXT_STYLE['height'][7]),
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
# Flip
|
||
|
|
||
|
def test_set_flip():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(flip=True)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][True], # Flip ON
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
# Smooth
|
||
|
|
||
|
def test_smooth():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(smooth=True)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][True], # Smooth ON
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert(instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
# Type
|
||
|
|
||
|
|
||
|
def test_set_bold():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(bold=True)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][True], # Bold ON
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
def test_set_underline():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(underline=1)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][1], # Underline ON, type 1
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
def test_set_underline2():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(underline=2)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][2], # Underline ON, type 2
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert (instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
# Align
|
||
|
|
||
|
def test_align_center():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(align='center')
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['center'], # Align center
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert(instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
def test_align_right():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(align='right')
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['right'], # Align right
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert(instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
# Densities
|
||
|
|
||
|
def test_densities():
|
||
|
|
||
|
for density in range(8):
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(density=density)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['density'][density], # Custom density from 0 to 8
|
||
|
TXT_STYLE['invert'][False] # Inverted OFF
|
||
|
)
|
||
|
|
||
|
assert(instance.output == b''.join(expected_sequence))
|
||
|
|
||
|
|
||
|
# Invert
|
||
|
|
||
|
def test_invert():
|
||
|
instance = printer.Dummy()
|
||
|
instance.set(invert=True)
|
||
|
|
||
|
expected_sequence = (
|
||
|
TXT_NORMAL, TXT_STYLE['size']['normal'], # Normal text size
|
||
|
TXT_STYLE['flip'][False], # Flip OFF
|
||
|
TXT_STYLE['smooth'][False], # Smooth OFF
|
||
|
TXT_STYLE['bold'][False], # Bold OFF
|
||
|
TXT_STYLE['underline'][0], # Underline OFF
|
||
|
SET_FONT(b'\x00'), # Default font
|
||
|
TXT_STYLE['align']['left'], # Align left
|
||
|
TXT_STYLE['invert'][True] # Inverted ON
|
||
|
)
|
||
|
|
||
|
assert(instance.output == b''.join(expected_sequence))
|