Coverage for netbox_data_import/filters.py: 100.00%

15 statements  

« prev     ^ index     » next       coverage.py v7.17.0, created at 2026-10-30 09:47 +0000

1# SPDX-License-Identifier: Apache-2.0 

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

3from django.db.models import Q 

4from netbox.filtersets import NetBoxModelFilterSet 

5from .models import ImportProfile, InferenceBackend 

6 

7 

8class ImportProfileFilterSet(NetBoxModelFilterSet): 

9 """FilterSet for ImportProfile, supporting name substring search.""" 

10 

11 class Meta: 

12 model = ImportProfile 

13 fields = ["name", "source_adapter"] 

14 

15 def search(self, queryset, name, value): 

16 """Filter profiles by name substring.""" 

17 return queryset.filter(name__icontains=value) 

18 

19 

20class InferenceBackendFilterSet(NetBoxModelFilterSet): 

21 """FilterSet for InferenceBackend, supporting key and display name search.""" 

22 

23 class Meta: 

24 model = InferenceBackend 

25 fields = ["backend_key", "display_name", "adapter_type", "response_mode", "enabled"] 

26 

27 def search(self, queryset, name, value): 

28 """Filter backends by key or display name substring.""" 

29 return queryset.filter(Q(backend_key__icontains=value) | Q(display_name__icontains=value))