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

1"""Plugins for testing label machines.""" 

2 

3import structlog 

4 

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 

10 

11logger = structlog.get_logger('inventree') 

12 

13 

14class TestingLabelPrinterDriver(LabelPrinterBaseDriver): 

15 """Test driver for label printing.""" 

16 

17 SLUG = 'test-label-printer-api' 

18 NAME = 'Test label printer' 

19 DESCRIPTION = 'This is a test label printer driver for testing.' 

20 

21 MACHINE_SETTINGS = { 

22 'TEST_SETTING': { 

23 'name': 'Test setting', 

24 'description': 'This is a test setting', 

25 } 

26 } 

27 

28 def restart_machine(self, machine: BaseMachineType): 

29 """Override restart_machine.""" 

30 machine.set_status_text('Restarting...') 

31 

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}') 

40 

41 for k, v in kwargs['printing_options'].items(): 

42 logger.warn(f'options: {k}: {v}') 

43 

44 def custom_func(self, *args, x=0, y=0): 

45 """A custom function for the driver.""" 

46 return x * y 

47 

48 

49class TestingLabelPrinterDriverError1(LabelPrinterBaseDriver): 

50 """Test driver for label printing.""" 

51 

52 SLUG = 'test-label-printer-error' 

53 NAME = 'Test label printer error' 

54 DESCRIPTION = 'This is a test label printer driver for testing.' 

55 

56 def print_label(self, *args, **kwargs) -> None: 

57 """Override print_label.""" 

58 

59 

60class TestingLabelPrinterDriverError2(LabelPrinterBaseDriver): 

61 """Test driver for label printing.""" 

62 

63 SLUG = 'test-label-printer-error' 

64 

65 NAME = 'Test label printer error' 

66 DESCRIPTION = 'This is a test label printer driver for testing.' 

67 

68 def print_label(self, *args, **kwargs) -> None: 

69 """Override print_label.""" 

70 

71 

72class TestingLabelPrinterDriverNotImplemented(LabelPrinterBaseDriver): 

73 """Test driver for label printing.""" 

74 

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.' 

78 

79 

80class LabelPrinterMachineTest(MachineDriverMixin, SettingsMixin, InvenTreePlugin): 

81 """A test plugin for label printer machines. 

82 

83 This plugin registers multiple driver types for unit testing. 

84 """ 

85 

86 NAME = 'LabelPrinterMachineTest' 

87 SLUG = 'label-printer-test-plugin' 

88 TITLE = 'Test plugin for label printer machines' 

89 

90 VERSION = '0.1' 

91 

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 ]