42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
import unittest
|
|
from unittest.mock import patch, MagicMock
|
|
from escpos.printer import Dummy
|
|
from printer_factory import PrinterFactory
|
|
|
|
|
|
class TestPrinterFactory(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.factory_dummy = PrinterFactory(type_="dummy")
|
|
self.factory_network = PrinterFactory(
|
|
type_="network", host="192.168.1.100")
|
|
|
|
def test_create_dummy_printer(self):
|
|
"""Test creación de impresora dummy"""
|
|
|
|
printer = self.factory_dummy._get_printer()
|
|
self.assertIsInstance(printer, Dummy)
|
|
|
|
@patch('printer_factory.Network')
|
|
def test_create_network_printer(self, mock_network):
|
|
"""Test creación de impresora de red con mock"""
|
|
|
|
mock_printer_instance = MagicMock()
|
|
mock_network.return_value = mock_printer_instance
|
|
|
|
printer = self.factory_network._get_printer()
|
|
|
|
mock_network.assert_called_once_with("192.168.1.100", 9100)
|
|
|
|
self.assertEqual(printer, mock_printer_instance)
|
|
|
|
def test_create_unknown_printer_type(self):
|
|
"""Test para tipo de impresora desconocido"""
|
|
|
|
with self.assertRaises(ValueError):
|
|
PrinterFactory(type_="invalid_type")._get_printer()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|