mirror of
https://github.com/python-escpos/python-escpos
synced 2025-12-02 09:43:30 +00:00
* fix unfinished Python2 -> 3 translation * remove some six usage * annotate * fix regression in Six removal * mypy: self.enf is always defined * fix return type of cups.py * Usb idVendor/idProduct are integers * self.default_args is always defined * tweak usb_args, PEP589 is better * lp.py: reassure mypy * correctly cast call to CashDrawerError() * update CUPS test * add missing close() method in metaclass * document a bug in typeshed * query_status() returns bytes as seen in constants.py * remove more SIX usage * test examples too * remove type comment where type is annotated * adapt behavior of cups printer to match other implementations --------- Co-authored-by: Patrick Kanzler <dev@pkanzler.de> Co-authored-by: Patrick Kanzler <4189642+patkan@users.noreply.github.com>
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
import pytest
|
|
|
|
from escpos import printer
|
|
from escpos.constants import BUZZER
|
|
|
|
|
|
def test_buzzer_function_with_default_params() -> None:
|
|
instance = printer.Dummy()
|
|
instance.buzzer()
|
|
expected = BUZZER + bytes((2, 4))
|
|
assert instance.output == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"times, duration",
|
|
[
|
|
[1, 1],
|
|
[2, 2],
|
|
[3, 3],
|
|
[4, 4],
|
|
[5, 5],
|
|
[6, 6],
|
|
[7, 7],
|
|
[8, 8],
|
|
[9, 9],
|
|
],
|
|
)
|
|
def test_buzzer_function(times: int, duration: int) -> None:
|
|
instance = printer.Dummy()
|
|
instance.buzzer(times, duration)
|
|
expected = BUZZER + bytes((times, duration))
|
|
assert instance.output == expected
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"times, duration, expected_message",
|
|
[
|
|
[0, 0, "times must be between 1 and 9"],
|
|
[-1, 0, "times must be between 1 and 9"],
|
|
[10, 0, "times must be between 1 and 9"],
|
|
[11, 0, "times must be between 1 and 9"],
|
|
[3, 0, "duration must be between 1 and 9"],
|
|
[3, -1, "duration must be between 1 and 9"],
|
|
[3, 10, "duration must be between 1 and 9"],
|
|
[3, 11, "duration must be between 1 and 9"],
|
|
],
|
|
)
|
|
def test_buzzer_fuction_with_outrange_values(
|
|
times: int, duration: int, expected_message: str
|
|
) -> None:
|
|
instance = printer.Dummy()
|
|
with pytest.raises(ValueError) as e:
|
|
instance.buzzer(times, duration)
|
|
|
|
assert str(e.value) == expected_message
|