Coverage for tenancy/graphql/filter_mixins.py: 85%

18 statements  

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

1from dataclasses import dataclass 

2from typing import TYPE_CHECKING, Annotated 

3 

4import strawberry 

5import strawberry_django 

6from strawberry import ID 

7 

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

9 from netbox.graphql.filter_lookups import TreeNodeFilter 

10 

11 from .filters import ContactAssignmentFilter, TenantFilter, TenantGroupFilter 

12 

13__all__ = ( 

14 'ContactFilterMixin', 

15 'TenancyFilterMixin', 

16) 

17 

18 

19@dataclass 

20class ContactFilterMixin: 

21 contacts: Annotated['ContactAssignmentFilter', strawberry.lazy('tenancy.graphql.filters')] | None = ( 

22 strawberry_django.filter_field() 

23 ) 

24 

25 

26@dataclass 

27class TenancyFilterMixin: 

28 tenant: Annotated['TenantFilter', strawberry.lazy('tenancy.graphql.filters')] | None = ( 

29 strawberry_django.filter_field() 

30 ) 

31 tenant_id: ID | None = strawberry_django.filter_field() 

32 tenant_group: Annotated['TenantGroupFilter', strawberry.lazy('tenancy.graphql.filters')] | None = ( 

33 strawberry_django.filter_field() 

34 ) 

35 tenant_group_id: Annotated['TreeNodeFilter', strawberry.lazy('netbox.graphql.filter_lookups')] | None = ( 

36 strawberry_django.filter_field() 

37 )