Coverage for netbox_data_import/__init__.py: 100%

27 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-09-09 20:50 +0000

1# SPDX-License-Identifier: Apache-2.0 

2# Copyright (C) 2025 Marcin Zieba <marcinpsk@gmail.com> 

3from typing import Any 

4 

5from netbox.plugins import PluginConfig 

6 

7__version__ = "2.1.0" 

8 

9 

10class NetBoxDataImportConfig(PluginConfig): 

11 """NetBox plugin configuration for the Data Import plugin.""" 

12 

13 name = "netbox_data_import" 

14 verbose_name = "NetBox Data Import" 

15 description = "NetBox plugin for importing data from external DCIM systems" 

16 version = __version__ 

17 base_url = "data-import" 

18 author = "Marcin Zieba" 

19 author_email = "marcinpsk@gmail.com" 

20 min_version = "4.6.0" 

21 graphql_schema = "graphql.schema.schema" 

22 

23 default_settings: dict[str, Any] = { 

24 # A deployment that names no allowlist reaches no origin, rather than every origin. 

25 "inference_backend_origin_allowlist": [], 

26 } 

27 

28 @classmethod 

29 def validate(cls, user_config, netbox_version): 

30 """Reject a malformed Inference Backend configuration before the application serves a request.""" 

31 super().validate(user_config, netbox_version) 

32 

33 from django.core.exceptions import ImproperlyConfigured 

34 

35 from .inference_settings import InvalidInferenceConfiguration, validate_plugin_settings 

36 

37 try: 

38 validate_plugin_settings(user_config) 

39 except InvalidInferenceConfiguration as exc: 

40 raise ImproperlyConfigured(f"Plugin {cls.__module__} has an invalid configuration: {exc}") from exc 

41 

42 def ready(self): 

43 """Import the jobs module, which NetBox does not load, so its @system_job registration runs.""" 

44 super().ready() 

45 

46 from . import jobs 

47 

48 

49config = NetBoxDataImportConfig