Coverage for src/backend/InvenTree/machine/apps.py: 88%
21 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"""Django machine app config."""
3from django.apps import AppConfig
4from django.db.utils import OperationalError, ProgrammingError
6import structlog
8from InvenTree.ready import (
9 canAppAccessDatabase,
10 ignore_ready_warning,
11 isImportingData,
12 isInMainThread,
13 isPluginRegistryLoaded,
14 isRunningMigrations,
15)
17logger = structlog.get_logger('inventree')
20class MachineConfig(AppConfig):
21 """AppConfig class for the machine app."""
23 name = 'machine'
25 def ready(self) -> None:
26 """Initialization method for the machine app."""
27 if (
28 not canAppAccessDatabase(allow_test=True)
29 or not isPluginRegistryLoaded()
30 or isRunningMigrations()
31 or isImportingData()
32 ):
33 logger.debug('Machine app: Skipping machine loading sequence')
34 return
36 try:
37 self.initialize_registry()
38 except (OperationalError, ProgrammingError):
39 # Database might not yet be ready
40 logger.warn('Database was not ready for initializing machines')
42 @ignore_ready_warning
43 def initialize_registry(self):
44 """Initialize the machine registry."""
45 from machine import registry
47 if not registry.is_ready: 47 ↛ exitline 47 didn't return from function 'initialize_registry' because the condition on line 47 was always true
48 logger.info('Loading InvenTree machines')
49 registry.initialize(main=isInMainThread())