@@ -55,27 +55,32 @@ async def echo_clients(clients: BothClients) -> AsyncGenerator[BothClients, None
5555
5656
5757@pytest .fixture
58- def replace_async_return_annotation ():
58+ def return_annotation_map () -> dict [str , str ]:
59+ return {
60+ "type[SchemaType]" : "type[SchemaTypeSync]" ,
61+ "SchemaType" : "SchemaTypeSync" ,
62+ "CoreNode" : "CoreNodeSync" ,
63+ "Optional[CoreNode]" : "Optional[CoreNodeSync]" ,
64+ "Union[str, type[SchemaType]]" : "Union[str, type[SchemaTypeSync]]" ,
65+ "Union[InfrahubNode, SchemaType]" : "Union[InfrahubNodeSync, SchemaTypeSync]" ,
66+ "Union[InfrahubNode, SchemaType, None]" : "Union[InfrahubNodeSync, SchemaTypeSync, None]" ,
67+ "Union[list[InfrahubNode], list[SchemaType]]" : "Union[list[InfrahubNodeSync], list[SchemaTypeSync]]" ,
68+ "InfrahubClient" : "InfrahubClientSync" ,
69+ "InfrahubNode" : "InfrahubNodeSync" ,
70+ "list[InfrahubNode]" : "list[InfrahubNodeSync]" ,
71+ "Optional[InfrahubNode]" : "Optional[InfrahubNodeSync]" ,
72+ "Optional[type[SchemaType]]" : "Optional[type[SchemaTypeSync]]" ,
73+ "Optional[Union[CoreNode, SchemaType]]" : "Optional[Union[CoreNodeSync, SchemaTypeSync]]" ,
74+ "InfrahubBatch" : "InfrahubBatchSync" ,
75+ }
76+
77+
78+ @pytest .fixture
79+ def replace_async_return_annotation (return_annotation_map : dict [str , str ]):
5980 """Allows for comparison between sync and async return annotations."""
6081
6182 def replace_annotation (annotation : str ) -> str :
62- replacements = {
63- "type[SchemaType]" : "type[SchemaTypeSync]" ,
64- "SchemaType" : "SchemaTypeSync" ,
65- "CoreNode" : "CoreNodeSync" ,
66- "Optional[CoreNode]" : "Optional[CoreNodeSync]" ,
67- "Union[str, type[SchemaType]]" : "Union[str, type[SchemaTypeSync]]" ,
68- "Union[InfrahubNode, SchemaType]" : "Union[InfrahubNodeSync, SchemaTypeSync]" ,
69- "Union[InfrahubNode, SchemaType, None]" : "Union[InfrahubNodeSync, SchemaTypeSync, None]" ,
70- "Union[list[InfrahubNode], list[SchemaType]]" : "Union[list[InfrahubNodeSync], list[SchemaTypeSync]]" ,
71- "InfrahubClient" : "InfrahubClientSync" ,
72- "InfrahubNode" : "InfrahubNodeSync" ,
73- "list[InfrahubNode]" : "list[InfrahubNodeSync]" ,
74- "Optional[InfrahubNode]" : "Optional[InfrahubNodeSync]" ,
75- "Optional[type[SchemaType]]" : "Optional[type[SchemaTypeSync]]" ,
76- "Optional[Union[CoreNode, SchemaType]]" : "Optional[Union[CoreNodeSync, SchemaTypeSync]]" ,
77- }
78- return replacements .get (annotation ) or annotation
83+ return return_annotation_map .get (annotation ) or annotation
7984
8085 return replace_annotation
8186
@@ -95,26 +100,11 @@ def replace_annotations(parameters: Mapping[str, Parameter]) -> tuple[str, str]:
95100
96101
97102@pytest .fixture
98- def replace_sync_return_annotation () -> str :
103+ def replace_sync_return_annotation (return_annotation_map : dict [ str , str ] ) -> str :
99104 """Allows for comparison between sync and async return annotations."""
100105
101106 def replace_annotation (annotation : str ) -> str :
102- replacements = {
103- "type[SchemaTypeSync]" : "type[SchemaType]" ,
104- "SchemaTypeSync" : "SchemaType" ,
105- "CoreNodeSync" : "CoreNode" ,
106- "Optional[CoreNodeSync]" : "Optional[CoreNode]" ,
107- "Union[str, type[SchemaTypeSync]]" : "Union[str, type[SchemaType]]" ,
108- "Union[InfrahubNodeSync, SchemaTypeSync]" : "Union[InfrahubNode, SchemaType]" ,
109- "Union[InfrahubNodeSync, SchemaTypeSync, None]" : "Union[InfrahubNode, SchemaType, None]" ,
110- "Union[list[InfrahubNodeSync], list[SchemaTypeSync]]" : "Union[list[InfrahubNode], list[SchemaType]]" ,
111- "InfrahubClientSync" : "InfrahubClient" ,
112- "InfrahubNodeSync" : "InfrahubNode" ,
113- "list[InfrahubNodeSync]" : "list[InfrahubNode]" ,
114- "Optional[InfrahubNodeSync]" : "Optional[InfrahubNode]" ,
115- "Optional[type[SchemaTypeSync]]" : "Optional[type[SchemaType]]" ,
116- "Optional[Union[CoreNodeSync, SchemaTypeSync]]" : "Optional[Union[CoreNode, SchemaType]]" ,
117- }
107+ replacements = {v : k for k , v in return_annotation_map .items ()}
118108 return replacements .get (annotation ) or annotation
119109
120110 return replace_annotation
0 commit comments