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
« 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
4import strawberry
5import strawberry_django
6from strawberry import ID
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
11 from .filters import ContactAssignmentFilter, TenantFilter, TenantGroupFilter
13__all__ = (
14 'ContactFilterMixin',
15 'TenancyFilterMixin',
16)
19@dataclass
20class ContactFilterMixin:
21 contacts: Annotated['ContactAssignmentFilter', strawberry.lazy('tenancy.graphql.filters')] | None = (
22 strawberry_django.filter_field()
23 )
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 )