1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

9856 circuits test sans DjangoModelType

This commit is contained in:
Arthur
2024-03-06 15:44:40 -08:00
parent 7c66a6aba8
commit 28ac66b0fb
4 changed files with 21 additions and 13 deletions

View File

@ -51,6 +51,7 @@ class ProviderType(NetBoxObjectType, ContactsMixin):
filters=ProviderAccountFilter filters=ProviderAccountFilter
) )
class ProviderAccountType(NetBoxObjectType): class ProviderAccountType(NetBoxObjectType):
provider: Annotated["ProviderType", strawberry.lazy('circuits.graphql.types')]
@strawberry_django.field @strawberry_django.field
def circuits(self) -> List[Annotated["CircuitType", strawberry.lazy('circuits.graphql.types')]]: def circuits(self) -> List[Annotated["CircuitType", strawberry.lazy('circuits.graphql.types')]]:
@ -63,6 +64,7 @@ class ProviderAccountType(NetBoxObjectType):
filters=ProviderNetworkFilter filters=ProviderNetworkFilter
) )
class ProviderNetworkType(NetBoxObjectType): class ProviderNetworkType(NetBoxObjectType):
provider: Annotated["ProviderType", strawberry.lazy('circuits.graphql.types')]
@strawberry_django.field @strawberry_django.field
def circuit_terminations(self) -> List[Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')]]: def circuit_terminations(self) -> List[Annotated["CircuitTerminationType", strawberry.lazy('circuits.graphql.types')]]:
@ -75,7 +77,9 @@ class ProviderNetworkType(NetBoxObjectType):
filters=CircuitTerminationFilter filters=CircuitTerminationFilter
) )
class CircuitTerminationType(CustomFieldsMixin, TagsMixin, CabledObjectMixin, ObjectType): class CircuitTerminationType(CustomFieldsMixin, TagsMixin, CabledObjectMixin, ObjectType):
pass circuit: Annotated["CircuitType", strawberry.lazy('circuits.graphql.types')]
provider_network: Annotated["ProviderNetworkType", strawberry.lazy('circuits.graphql.types')] | None
site: Annotated["SiteType", strawberry.lazy('dcim.graphql.types')] | None
@strawberry_django.type( @strawberry_django.type(

View File

@ -11,11 +11,7 @@ __all__ = (
@strawberry.type @strawberry.type
class CabledObjectMixin: class CabledObjectMixin:
cable: Annotated["CableType", strawberry.lazy('dcim.graphql.types')] | None
# @strawberry_django.field
# def cable_end(self) -> List[Annotated["ObjectChangeType", strawberry.lazy('.types')]]:
# # Handle empty values
# return self.cable_end or None
@strawberry_django.field @strawberry_django.field
def link_peers(self) -> List[Annotated[Union[ def link_peers(self) -> List[Annotated[Union[

View File

@ -21,8 +21,8 @@ class DummyQuery:
return None return None
dummymodel_list: List[DummyModelType] = strawberry_django.field() dummymodel_list: List[DummyModelType] = strawberry_django.field()
# bug - temp - FIXME!
schema = strawberry.Schema( # schema = strawberry.Schema(
query=DummyQuery, # query=DummyQuery,
config=StrawberryConfig(auto_camel_case=False), # config=StrawberryConfig(auto_camel_case=False),
) # )

View File

@ -472,13 +472,21 @@ class APIViewTestCases:
# this would require a fragment query # this would require a fragment query
continue continue
elif field.type is strawberry_django.fields.types.DjangoModelType: elif field.type is strawberry_django.fields.types.DjangoModelType:
print("")
print("DjangoModelType")
print(f"{self.model} -> {field.name}")
print("")
# Dynamic fields must specify a subselection # Dynamic fields must specify a subselection
fields_string += f'{field.name} {{ pk }}\n' fields_string += f'{field.name} {{ id }}\n'
elif type(field.type) is StrawberryOptional: elif type(field.type) is StrawberryOptional:
if type(field.type.of_type) is LazyType: if type(field.type.of_type) is LazyType:
fields_string += f'{field.name} {{ id }}\n' fields_string += f'{field.name} {{ id }}\n'
elif field.type.of_type == strawberry_django.fields.types.DjangoModelType: elif field.type.of_type == strawberry_django.fields.types.DjangoModelType:
fields_string += f'{field.name} {{ pk }}\n' print("")
print("DjangoModelType")
print(f"{self.model} -> {field.name}")
print("")
fields_string += f'{field.name} {{ id }}\n'
elif hasattr(field, 'is_relation') and field.is_relation: elif hasattr(field, 'is_relation') and field.is_relation:
# Note: StrawberryField types do not have is_relation # Note: StrawberryField types do not have is_relation
fields_string += f'{field.name} {{ id }}\n' fields_string += f'{field.name} {{ id }}\n'