2016-08-30 10:53:31 +00:00
|
|
|
#!/usr/bin/python
|
|
|
|
|
|
|
|
import escpos.printer as printer
|
|
|
|
from escpos.capabilities import Profile, BARCODE_B
|
2017-10-08 18:05:18 +00:00
|
|
|
from escpos.exceptions import BarcodeTypeError, BarcodeCodeError
|
2016-08-30 10:53:31 +00:00
|
|
|
import pytest
|
|
|
|
|
|
|
|
|
|
|
|
@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):
|
2016-08-30 15:55:58 +00:00
|
|
|
"""should generate different barcode types correctly.
|
|
|
|
"""
|
2016-08-30 10:53:31 +00:00
|
|
|
instance = printer.Dummy()
|
|
|
|
instance.barcode(data, bctype)
|
|
|
|
assert instance.output == expected
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("bctype,supports_b", [
|
|
|
|
('invalid', True),
|
|
|
|
('CODE128', False),
|
|
|
|
])
|
|
|
|
def test_lacks_support(bctype, supports_b):
|
2016-08-30 15:55:58 +00:00
|
|
|
"""should raise an error if the barcode type is not supported.
|
|
|
|
"""
|
2016-08-30 10:53:31 +00:00
|
|
|
profile = Profile(features={BARCODE_B: supports_b})
|
|
|
|
instance = printer.Dummy(profile=profile)
|
|
|
|
with pytest.raises(BarcodeTypeError):
|
|
|
|
instance.barcode('test', bctype)
|
|
|
|
|
2017-01-29 23:10:14 +00:00
|
|
|
assert instance.output == b''
|
2017-10-08 18:05:18 +00:00
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("bctype,data", [
|
|
|
|
('EAN13', 'AA'),
|
|
|
|
('CODE128', '{D2354AA'),
|
|
|
|
])
|
|
|
|
def test_code_check(bctype, data):
|
|
|
|
"""should raise an error if the barcode code is invalid.
|
|
|
|
"""
|
|
|
|
instance = printer.Dummy()
|
|
|
|
with pytest.raises(BarcodeCodeError):
|
|
|
|
instance.barcode(data, bctype)
|
|
|
|
|
|
|
|
assert instance.output == b''
|