Coverage for archdocs/features/http_clients/renderer.py: 100%

8 statements  

« prev     ^ index     » next       coverage.py v7.15.3, created at 2026-08-03 00:00 +0000

1import typing 

2 

3from archdocs import diagram_model 

4from archdocs.features.http_clients.const import HttpClientFeatures 

5 

6 

7def render_http_client_features( 

8 service_node: diagram_model.DiagramNode, 

9 features_to_draw: HttpClientFeatures, 

10 /, 

11) -> tuple[diagram_model.DiagramEdge, ...]: 

12 if not features_to_draw.has_external_calls or not features_to_draw.clients_used: 

13 return () 

14 

15 properties_on_arrow: typing.Final = ", ".join( 

16 filter( 

17 None, 

18 [ 

19 "async" if features_to_draw.async_used else "", 

20 ", ".join(sorted(features_to_draw.clients_used)), 

21 ], 

22 ), 

23 ) 

24 

25 return ( 

26 diagram_model.DiagramEdge( 

27 source_node=service_node, 

28 target_node=diagram_model.EXTERNAL_API_NODE, 

29 edge_label=f"HTTP ({properties_on_arrow})", 

30 ), 

31 )