Coverage for wireless/graphql/filters.py: 89%

35 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-10 18:35 +0000

1from typing import TYPE_CHECKING, Annotated 

2 

3import strawberry 

4import strawberry_django 

5from strawberry.scalars import ID 

6from strawberry_django import BaseFilterLookup, StrFilterLookup 

7 

8from dcim.graphql.filter_mixins import ScopedFilterMixin 

9from netbox.graphql.filter_mixins import DistanceFilterMixin 

10from netbox.graphql.filters import NestedGroupModelFilter, PrimaryModelFilter, register_filter 

11from tenancy.graphql.filter_mixins import TenancyFilterMixin 

12from wireless import models 

13 

14from .filter_mixins import WirelessAuthenticationFilterMixin 

15 

16if TYPE_CHECKING: 16 ↛ 17line 16 didn't jump to line 17 because the condition on line 16 was never true

17 from dcim.graphql.filters import InterfaceFilter 

18 from ipam.graphql.filters import VLANFilter 

19 

20 from .enums import * 

21 

22__all__ = ( 

23 'WirelessLANFilter', 

24 'WirelessLANGroupFilter', 

25 'WirelessLinkFilter', 

26) 

27 

28 

29@register_filter(models.WirelessLANGroup, lookups=True) 

30class WirelessLANGroupFilter(NestedGroupModelFilter): 

31 pass 

32 

33 

34@register_filter(models.WirelessLAN, lookups=True) 

35class WirelessLANFilter( 

36 WirelessAuthenticationFilterMixin, 

37 ScopedFilterMixin, 

38 TenancyFilterMixin, 

39 PrimaryModelFilter 

40): 

41 ssid: StrFilterLookup | None = strawberry_django.filter_field() 

42 status: BaseFilterLookup[Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')]] | None = ( 

43 strawberry_django.filter_field() 

44 ) 

45 group: Annotated['WirelessLANGroupFilter', strawberry.lazy('wireless.graphql.filters')] | None = ( 

46 strawberry_django.filter_field() 

47 ) 

48 group_id: ID | None = strawberry_django.filter_field() 

49 vlan: Annotated['VLANFilter', strawberry.lazy('ipam.graphql.filters')] | None = strawberry_django.filter_field() 

50 vlan_id: ID | None = strawberry_django.filter_field() 

51 

52 

53@register_filter(models.WirelessLink, lookups=True) 

54class WirelessLinkFilter( 

55 WirelessAuthenticationFilterMixin, 

56 DistanceFilterMixin, 

57 TenancyFilterMixin, 

58 PrimaryModelFilter 

59): 

60 interface_a: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = ( 

61 strawberry_django.filter_field() 

62 ) 

63 interface_a_id: ID | None = strawberry_django.filter_field() 

64 interface_b: Annotated['InterfaceFilter', strawberry.lazy('dcim.graphql.filters')] | None = ( 

65 strawberry_django.filter_field() 

66 ) 

67 interface_b_id: ID | None = strawberry_django.filter_field() 

68 ssid: StrFilterLookup | None = strawberry_django.filter_field() 

69 status: BaseFilterLookup[Annotated['WirelessLANStatusEnum', strawberry.lazy('wireless.graphql.enums')]] | None = ( 

70 strawberry_django.filter_field() 

71 )