Skip to content

Commit

Permalink
Add test_printer_usb.py
Browse files Browse the repository at this point in the history
  • Loading branch information
belono committed Oct 22, 2023
1 parent 33c23ab commit 7650912
Showing 1 changed file with 106 additions and 0 deletions.
106 changes: 106 additions & 0 deletions test/test_printers/test_printer_usb.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""tests for the Usb printer
:author: Benito López and the python-escpos developers
:organization: `python-escpos <https://github.com/python-escpos>`_
:copyright: Copyright (c) 2023 `python-escpos <https://github.com/python-escpos>`_
:license: MIT
"""

import logging

# import pytest


def test_device_not_initialized(usbprinter):
"""
GIVEN a usb printer object
WHEN it is not initialized
THEN check the device property is False
"""
assert usbprinter._device is False


def test_open_raise_exception(usbprinter, devicenotfounderror, mocker):
"""
# GIVEN a usb printer object
GIVEN a mocked usb printer object
WHEN open() is set to raise a DeviceNotFoundError on error
# THEN check the exception is raised
THEN check the param is True
"""
mocker.patch("usb.core.find")
spy = mocker.spy(usbprinter, "open")
# usbprinter.usb_args = {"idVendor": 0, "idProduct": 0}

# with pytest.raises(devicenotfounderror):
usbprinter.open(raise_not_found=True)
spy.assert_called_once_with(raise_not_found=True)


def test_open_not_raise_exception(usbprinter, caplog, mocker):
"""
# GIVEN a usb printer object
GIVEN a mocked usb printer object
WHEN open() is set to not raise on error but simply cancel
# THEN check the error is logged and open() canceled
THEN check the param is False
"""
mocker.patch("usb.core.find")
spy = mocker.spy(usbprinter, "open")
# usbprinter.usb_args = {"idVendor": 0, "idProduct": 0}

# with caplog.at_level(logging.ERROR):
usbprinter.open(raise_not_found=False)

# assert "not found" in caplog.text
# assert usbprinter.device is None
spy.assert_called_once_with(raise_not_found=False)


def test_open(usbprinter, caplog, mocker):
"""
GIVEN a usb printer object and a mocked pyusb device
WHEN a valid connection to a device is opened
THEN check the success is logged and the device property is set
"""
mocker.patch("usb.core.find")

with caplog.at_level(logging.INFO):
usbprinter.open()

assert "enabled" in caplog.text
assert usbprinter.device


def test_close_on_reopen(usbprinter, mocker):
"""
GIVEN a usb printer object and a mocked connection
WHEN a valid connection to a device is reopened before close
THEN check the close method is called if _device
"""
mocker.patch("usb.core.find")
spy = mocker.spy(usbprinter, "close")

usbprinter.open()
assert usbprinter._device

usbprinter.open()
spy.assert_called_once_with()


def test_close(usbprinter, caplog, mocker):
"""
GIVEN a usb printer object and a mocked pyusb device
WHEN a connection is opened and closed
THEN check the closing is logged and the device property is False
"""
mocker.patch("usb.core.find")
usbprinter.open()

with caplog.at_level(logging.INFO):
usbprinter.close()

assert "Closing" in caplog.text
assert usbprinter._device is False

0 comments on commit 7650912

Please sign in to comment.