77# Local application imports 
88from  .test_mesh_protocols  import  test_register_mesh 
99
10+ 
1011def  test_create_visualization (server ):
11-     server .call (VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["create_visualization" ]["rpc" ])
12+     server .call (
13+         VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["create_visualization" ]["rpc" ]
14+     )
1215    assert  server .compare_image (3 , "viewer/create_visualization.jpeg" ) ==  True 
1316
17+ 
1418def  test_reset_camera (server ):
15-     server .call (VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["reset_camera" ]["rpc" ])
19+     server .call (
20+         VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["reset_camera" ]["rpc" ]
21+     )
1622    assert  server .compare_image (3 , "viewer/reset_camera.jpeg" ) ==  True 
1723
24+ 
1825def  test_set_viewer_background_color (server ):
19-     server .call (VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["set_background_color" ]["rpc" ], [{"red" : 0 , "green" : 0 , "blue" : 255 }])
26+     server .call (
27+         VtkViewerView .prefix 
28+         +  VtkViewerView .schemas_dict ["set_background_color" ]["rpc" ],
29+         [{"red" : 0 , "green" : 0 , "blue" : 255 }],
30+     )
2031    assert  server .compare_image (3 , "viewer/set_background_color.jpeg" ) ==  True 
2132
22- def  test_get_point_position (server ):
2333
34+ def  test_get_point_position (server ):
2435    test_register_mesh (server )
2536
26-     server .call (VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["get_point_position" ]["rpc" ], [{"x" : 0 , "y" : 0 }])
37+     server .call (
38+         VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["get_point_position" ]["rpc" ],
39+         [{"x" : 0 , "y" : 0 }],
40+     )
2741    response  =  server .get_response ()
2842    assert  "x"  in  response ["result" ]
2943    assert  "y"  in  response ["result" ]
@@ -43,7 +57,13 @@ def test_take_screenshot(server):
4357    # Take a screenshot with background jpg 
4458    server .call (
4559        VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["take_screenshot" ]["rpc" ],
46-         [{"filename" : "take_screenshot_with_background" , "output_extension" : "jpg" , "include_background" : True }],
60+         [
61+             {
62+                 "filename" : "take_screenshot_with_background" ,
63+                 "output_extension" : "jpg" ,
64+                 "include_background" : True ,
65+             }
66+         ],
4767    )
4868
4969    response  =  server .get_response ()
@@ -54,16 +74,24 @@ def test_take_screenshot(server):
5474        f .write (blob )
5575        f .close ()
5676    first_image_path  =  os .path .join (server .test_output_dir , "test.jpg" )
57-     second_image_path  =  os .path .join (server .images_dir_path , "viewer/take_screenshot_with_background.jpg" )
77+     second_image_path  =  os .path .join (
78+         server .images_dir_path , "viewer/take_screenshot_with_background.jpg" 
79+     )
5880
5981    assert  server .images_diff (first_image_path , second_image_path ) ==  0.0 
6082
6183    # Take a screenshot without background png 
6284    server .call (
6385        VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["take_screenshot" ]["rpc" ],
64-         [{"filename" : "take_screenshot_without_background" , "output_extension" : "png" , "include_background" : True }],
86+         [
87+             {
88+                 "filename" : "take_screenshot_without_background" ,
89+                 "output_extension" : "png" ,
90+                 "include_background" : True ,
91+             }
92+         ],
6593    )
66-      
94+ 
6795    response  =  server .get_response ()
6896    response  =  server .get_response ()
6997    blob  =  server .get_response ()
@@ -74,16 +102,24 @@ def test_take_screenshot(server):
74102        f .write (blob )
75103        f .close ()
76104    first_image_path  =  os .path .join (server .test_output_dir , "test.png" )
77-     second_image_path  =  os .path .join (server .images_dir_path , "viewer/take_screenshot_without_background.png" )
105+     second_image_path  =  os .path .join (
106+         server .images_dir_path , "viewer/take_screenshot_without_background.png" 
107+     )
78108
79109    assert  server .images_diff (first_image_path , second_image_path ) ==  0.0 
80110
81111    # Take a screenshot with background png 
82112    server .call (
83113        VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["take_screenshot" ]["rpc" ],
84-         [{"filename" : "take_screenshot_with_background" , "output_extension" : "png" , "include_background" : True }],
114+         [
115+             {
116+                 "filename" : "take_screenshot_with_background" ,
117+                 "output_extension" : "png" ,
118+                 "include_background" : True ,
119+             }
120+         ],
85121    )
86-      
122+ 
87123    response  =  server .get_response ()
88124    response  =  server .get_response ()
89125    blob  =  server .get_response ()
@@ -94,6 +130,32 @@ def test_take_screenshot(server):
94130        f .write (blob )
95131        f .close ()
96132    first_image_path  =  os .path .join (server .test_output_dir , "test.png" )
97-     second_image_path  =  os .path .join (server .images_dir_path , "viewer/take_screenshot_with_background.png" )
133+     second_image_path  =  os .path .join (
134+         server .images_dir_path , "viewer/take_screenshot_with_background.png" 
135+     )
98136
99137    assert  server .images_diff (first_image_path , second_image_path ) ==  0.0 
138+ 
139+ 
140+ def  test_picked_ids (server ):
141+ 
142+     test_register_mesh (server )
143+ 
144+     server .call (
145+         VtkViewerView .prefix  +  VtkViewerView .schemas_dict ["picked_ids" ]["rpc" ],
146+         [{"x" : 100 , "y" : 200 , "ids" : ["123456789" ]}],
147+     )
148+     response  =  server .get_response ()
149+ 
150+     print (f"Response: { response }  " , flush = True )
151+ 
152+     assert  "result"  in  response , f"Key 'result' not found in response: { response }  " 
153+ 
154+     assert  (
155+         "array_ids"  in  response ["result" ]
156+     ), f"Key 'array_ids' not found in response['result']: { response ['result' ]}  " 
157+ 
158+     array_ids  =  response ["result" ]["array_ids" ]
159+     assert  isinstance (array_ids , list ), f"Expected a list, but got { type (array_ids )}  " 
160+     assert  all (isinstance (id , str ) for  id  in  array_ids ), "All IDs should be strings" 
161+     assert  len (array_ids ) >  0 , "The list of array_ids should not be empty" 
0 commit comments