mirror of
https://github.com/python-escpos/python-escpos
synced 2025-08-24 09:03:34 +00:00
Feature(escpos) Add buzzer function (#535)
* Add buzzer function * Add `buzzer(time, duration)` function to control the buzzer on supported printers. * Add unit tests for buzzer function. * Update test_function_buzzer.py to pass black * Run black in tests files --------- Co-authored-by: Patrick Kanzler <dev@pkanzler.de>
This commit is contained in:
54
test/test_function_buzzer.py
Normal file
54
test/test_function_buzzer.py
Normal file
@@ -0,0 +1,54 @@
|
||||
import six
|
||||
import pytest
|
||||
|
||||
from escpos import printer
|
||||
from escpos.constants import BUZZER
|
||||
|
||||
|
||||
def test_buzzer_function_with_default_params():
|
||||
instance = printer.Dummy()
|
||||
instance.buzzer()
|
||||
expected = BUZZER + six.int2byte(2) + six.int2byte(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, duration):
|
||||
instance = printer.Dummy()
|
||||
instance.buzzer(times, duration)
|
||||
expected = BUZZER + six.int2byte(times) + six.int2byte(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, duration, expected_message):
|
||||
instance = printer.Dummy()
|
||||
with pytest.raises(ValueError) as e:
|
||||
instance.buzzer(times, duration)
|
||||
|
||||
assert str(e.value) == expected_message
|
Reference in New Issue
Block a user