Skip to content

Commit c35f8b0

Browse files
committed
test + schemas
1 parent 94b70c7 commit c35f8b0

File tree

3 files changed

+82
-15
lines changed

3 files changed

+82
-15
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"rpc": "get_mouse",
3+
"type": "object",
4+
"properties": {
5+
"x": {
6+
"type": "integer"
7+
},
8+
"y": {
9+
"type": "integer"
10+
}
11+
}
12+
}

src/opengeodeweb_viewer/rpc/viewer/viewer_protocols.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import vtk
88
from vtk.web import protocols as vtk_protocols
99
from vtkmodules.vtkIOImage import vtkPNGWriter, vtkJPEGWriter
10-
from vtkmodules.vtkRenderingCore import (vtkWindowToImageFilter)
10+
from vtkmodules.vtkRenderingCore import vtkWindowToImageFilter
1111
from wslink import register as exportRpc
1212

1313
# Local application imports
@@ -18,6 +18,7 @@
1818
schemas_dict = get_schemas_dict(schemas_dir)
1919
prefix = "opengeodeweb_viewer.viewer."
2020

21+
2122
class VtkViewerView(VtkView):
2223
def __init__(self):
2324
super().__init__()
@@ -93,7 +94,7 @@ def takeScreenshot(self, params):
9394
else:
9495
raise Exception("output_extension not supported")
9596

96-
new_filename = filename + '.' + output_extension
97+
new_filename = filename + "." + output_extension
9798
file_path = os.path.join(self.DATA_FOLDER_PATH, new_filename)
9899
writer.SetFileName(file_path)
99100
writer.SetInputConnection(w2if.GetOutputPort())
@@ -104,7 +105,6 @@ def takeScreenshot(self, params):
104105

105106
return {"blob": self.addAttachment(file_content)}
106107

107-
108108
@exportRpc(prefix + schemas_dict["update_data"]["rpc"])
109109
def updateData(self, params):
110110
print(schemas_dict["update_data"]["rpc"], params, flush=True)
@@ -145,3 +145,11 @@ def reset(self, params):
145145
validate_schema(params, schemas_dict["reset"])
146146
renderWindow = self.getView("-1")
147147
renderWindow.GetRenderers().GetFirstRenderer().RemoveAllViewProps()
148+
149+
@exportRpc(prefix + schemas_dict["get_mouse"]["rpc"])
150+
def getMouse(self, params):
151+
print(schemas_dict["get_mouse"]["rpc"], params, flush=True)
152+
validate_schema(params, schemas_dict["get_mouse"])
153+
x = params["x"]
154+
y = params["y"]
155+
return {"x": x, "y": y}

src/tests/test_viewer_protocols.py

Lines changed: 59 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,31 @@
99

1010
class_ = VtkViewerView()
1111

12+
1213
def test_create_visualization(server):
1314
server.call(class_.prefix + class_.schemas_dict["create_visualization"]["rpc"])
1415
assert server.compare_image(3, "viewer/create_visualization.jpeg") == True
1516

17+
1618
def test_reset_camera(server):
1719
server.call(class_.prefix + class_.schemas_dict["reset_camera"]["rpc"])
1820
assert server.compare_image(3, "viewer/reset_camera.jpeg") == True
1921

22+
2023
def test_set_viewer_background_color(server):
21-
server.call(class_.prefix + class_.schemas_dict["set_background_color"]["rpc"], [{"red": 0, "green": 0, "blue": 255}])
24+
server.call(
25+
class_.prefix + class_.schemas_dict["set_background_color"]["rpc"],
26+
[{"red": 0, "green": 0, "blue": 255}],
27+
)
2228
assert server.compare_image(3, "viewer/set_background_color.jpeg") == True
2329

24-
def test_get_point_position(server):
2530

31+
def test_get_point_position(server):
2632
test_register_mesh(server)
27-
28-
server.call(class_.prefix + class_.schemas_dict["get_point_position"]["rpc"], [{"x": 0, "y": 0}])
33+
server.call(
34+
class_.prefix + class_.schemas_dict["get_point_position"]["rpc"],
35+
[{"x": 0, "y": 0}],
36+
)
2937
response = server.get_response()
3038
assert "x" in response["result"]
3139
assert "y" in response["result"]
@@ -45,7 +53,13 @@ def test_take_screenshot(server):
4553
# Take a screenshot with background jpg
4654
server.call(
4755
class_.prefix + class_.schemas_dict["take_screenshot"]["rpc"],
48-
[{"filename": "take_screenshot_with_background", "output_extension": "jpg", "include_background": True}],
56+
[
57+
{
58+
"filename": "take_screenshot_with_background",
59+
"output_extension": "jpg",
60+
"include_background": True,
61+
}
62+
],
4963
)
5064

5165
response = server.get_response()
@@ -56,16 +70,24 @@ def test_take_screenshot(server):
5670
f.write(blob)
5771
f.close()
5872
first_image_path = os.path.join(server.test_output_dir, "test.jpg")
59-
second_image_path = os.path.join(server.images_dir_path, "viewer/take_screenshot_with_background.jpg")
73+
second_image_path = os.path.join(
74+
server.images_dir_path, "viewer/take_screenshot_with_background.jpg"
75+
)
6076

6177
assert server.images_diff(first_image_path, second_image_path) == 0.0
6278

6379
# Take a screenshot without background png
6480
server.call(
6581
class_.prefix + class_.schemas_dict["take_screenshot"]["rpc"],
66-
[{"filename": "take_screenshot_without_background", "output_extension": "png", "include_background": True}],
82+
[
83+
{
84+
"filename": "take_screenshot_without_background",
85+
"output_extension": "png",
86+
"include_background": True,
87+
}
88+
],
6789
)
68-
90+
6991
response = server.get_response()
7092
response = server.get_response()
7193
blob = server.get_response()
@@ -76,16 +98,24 @@ def test_take_screenshot(server):
7698
f.write(blob)
7799
f.close()
78100
first_image_path = os.path.join(server.test_output_dir, "test.png")
79-
second_image_path = os.path.join(server.images_dir_path, "viewer/take_screenshot_without_background.png")
101+
second_image_path = os.path.join(
102+
server.images_dir_path, "viewer/take_screenshot_without_background.png"
103+
)
80104

81105
assert server.images_diff(first_image_path, second_image_path) == 0.0
82106

83107
# Take a screenshot with background png
84108
server.call(
85109
class_.prefix + class_.schemas_dict["take_screenshot"]["rpc"],
86-
[{"filename": "take_screenshot_with_background", "output_extension": "png", "include_background": True}],
110+
[
111+
{
112+
"filename": "take_screenshot_with_background",
113+
"output_extension": "png",
114+
"include_background": True,
115+
}
116+
],
87117
)
88-
118+
89119
response = server.get_response()
90120
response = server.get_response()
91121
blob = server.get_response()
@@ -96,6 +126,23 @@ def test_take_screenshot(server):
96126
f.write(blob)
97127
f.close()
98128
first_image_path = os.path.join(server.test_output_dir, "test.png")
99-
second_image_path = os.path.join(server.images_dir_path, "viewer/take_screenshot_with_background.png")
129+
second_image_path = os.path.join(
130+
server.images_dir_path, "viewer/take_screenshot_with_background.png"
131+
)
100132

101133
assert server.images_diff(first_image_path, second_image_path) == 0.0
134+
135+
136+
def test_get_mouse(server):
137+
server.call(
138+
class_.prefix + class_.schemas_dict["get_mouse"]["rpc"], [{"x": 100, "y": 200}]
139+
)
140+
response = server.get_response()
141+
assert "x" in response["result"]
142+
assert "y" in response["result"]
143+
x = response["result"]["x"]
144+
y = response["result"]["y"]
145+
assert type(x) is int
146+
assert type(y) is int
147+
assert x == 100
148+
assert y == 200

0 commit comments

Comments
 (0)