Coverage for src/backend/InvenTree/plugin/testing/label_machines.py: 0%
44 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
1"""Plugins for testing label machines."""
3import structlog
5from machine.machine_type import BaseDriver
6from plugin import InvenTreePlugin
7from plugin.machine import BaseMachineType
8from plugin.machine.machine_types import LabelPrinterBaseDriver
9from plugin.mixins import MachineDriverMixin, SettingsMixin
11logger = structlog.get_logger('inventree')
14class TestingLabelPrinterDriver(LabelPrinterBaseDriver):
15 """Test driver for label printing."""
17 SLUG = 'test-label-printer-api'
18 NAME = 'Test label printer'
19 DESCRIPTION = 'This is a test label printer driver for testing.'
21 MACHINE_SETTINGS = {
22 'TEST_SETTING': {
23 'name': 'Test setting',
24 'description': 'This is a test setting',
25 }
26 }
28 def restart_machine(self, machine: BaseMachineType):
29 """Override restart_machine."""
30 machine.set_status_text('Restarting...')
32 def print_label(self, machine, label, item, **kwargs) -> None:
33 """Override print_label."""
34 # Simply output some warning messages,
35 # which we can check for in the unit test
36 logger.warn('Printing Label: TestingLabelPrinterDriver')
37 logger.warn(f'machine: {machine.pk}')
38 logger.warn(f'label: {label.pk}')
39 logger.warn(f'item: {item.pk}')
41 for k, v in kwargs['printing_options'].items():
42 logger.warn(f'options: {k}: {v}')
44 def custom_func(self, *args, x=0, y=0):
45 """A custom function for the driver."""
46 return x * y
49class TestingLabelPrinterDriverError1(LabelPrinterBaseDriver):
50 """Test driver for label printing."""
52 SLUG = 'test-label-printer-error'
53 NAME = 'Test label printer error'
54 DESCRIPTION = 'This is a test label printer driver for testing.'
56 def print_label(self, *args, **kwargs) -> None:
57 """Override print_label."""
60class TestingLabelPrinterDriverError2(LabelPrinterBaseDriver):
61 """Test driver for label printing."""
63 SLUG = 'test-label-printer-error'
65 NAME = 'Test label printer error'
66 DESCRIPTION = 'This is a test label printer driver for testing.'
68 def print_label(self, *args, **kwargs) -> None:
69 """Override print_label."""
72class TestingLabelPrinterDriverNotImplemented(LabelPrinterBaseDriver):
73 """Test driver for label printing."""
75 SLUG = 'test-label-printer-not-implemented'
76 NAME = 'Test label printer error not implemented'
77 DESCRIPTION = 'This is a test label printer driver for testing.'
80class LabelPrinterMachineTest(MachineDriverMixin, SettingsMixin, InvenTreePlugin):
81 """A test plugin for label printer machines.
83 This plugin registers multiple driver types for unit testing.
84 """
86 NAME = 'LabelPrinterMachineTest'
87 SLUG = 'label-printer-test-plugin'
88 TITLE = 'Test plugin for label printer machines'
90 VERSION = '0.1'
92 def get_machine_drivers(self) -> list[BaseDriver]:
93 """Return a list of drivers registered by this plugin."""
94 return [
95 TestingLabelPrinterDriver,
96 TestingLabelPrinterDriverError1,
97 TestingLabelPrinterDriverError2,
98 TestingLabelPrinterDriverNotImplemented,
99 ]