python-escpos/test/test_function_barcode.py

57 lines
1.4 KiB
Python
Raw Normal View History

#!/usr/bin/python
import escpos.printer as printer
from escpos.capabilities import Profile, BARCODE_B
from escpos.exceptions import BarcodeTypeError, BarcodeCodeError
import pytest
2021-10-30 16:15:22 +00:00
@pytest.mark.parametrize(
"bctype,data,expected",
[
(
"EAN13",
"4006381333931",
b"\x1ba\x01\x1dh@\x1dw\x03\x1df\x00\x1dH\x02\x1dk\x024006381333931\x00",
)
],
)
def test_barcode(bctype, data, expected):
2021-10-30 16:15:22 +00:00
"""should generate different barcode types correctly."""
instance = printer.Dummy()
instance.barcode(data, bctype)
assert instance.output == expected
2021-10-30 16:15:22 +00:00
@pytest.mark.parametrize(
"bctype,supports_b",
[
("invalid", True),
("CODE128", False),
],
)
def test_lacks_support(bctype, supports_b):
2021-10-30 16:15:22 +00:00
"""should raise an error if the barcode type is not supported."""
profile = Profile(features={BARCODE_B: supports_b})
instance = printer.Dummy(profile=profile)
with pytest.raises(BarcodeTypeError):
2021-10-30 16:15:22 +00:00
instance.barcode("test", bctype)
2021-10-30 16:15:22 +00:00
assert instance.output == b""
2021-10-30 16:15:22 +00:00
@pytest.mark.parametrize(
"bctype,data",
[
("EAN13", "AA"),
("CODE128", "{D2354AA"),
],
)
def test_code_check(bctype, data):
2021-10-30 16:15:22 +00:00
"""should raise an error if the barcode code is invalid."""
instance = printer.Dummy()
with pytest.raises(BarcodeCodeError):
instance.barcode(data, bctype)
2021-10-30 16:15:22 +00:00
assert instance.output == b""