Skip to content

Commit 901cdc1

Browse files
committed
test stable
1 parent 830be80 commit 901cdc1

File tree

9 files changed

+52
-123
lines changed

9 files changed

+52
-123
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ build
1313
.coverage*
1414
.mypy_cache
1515
*.db
16+
tests/data

src/opengeodeweb_viewer/config.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ def _copy_test_assets(
4949

5050
def test_config(path):
5151
default_config()
52-
tmp_data_root = tempfile.mkdtemp(prefix="ogw_test_data_")
53-
os.environ["DATA_FOLDER_PATH"] = tmp_data_root
52+
os.environ["DATA_FOLDER_PATH"] = os.path.join(
53+
os.path.dirname(__file__), "..", "..", "tests", "data"
54+
)
5455

5556
os.environ["DATABASE_PATH"] = str(path)
5657
db_file = os.path.join(path, "project.db")

src/tests/conftest.py

Lines changed: 37 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -70,61 +70,52 @@ def _reader_for_file(path: str):
7070
return vtk.vtkJPEGReader()
7171
return vtk.vtkJPEGReader()
7272

73-
def images_diff(self, first_image_path, second_image_path, tolerance: float = 0.0):
74-
first_reader = self._reader_for_file(first_image_path)
73+
def images_diff(self, first_image_path, second_image_path):
74+
if ".png" in first_image_path:
75+
first_reader = vtk.vtkPNGReader()
76+
elif (".jpg" in first_image_path) or (".jpeg" in first_image_path):
77+
first_reader = vtk.vtkJPEGReader()
7578
first_reader.SetFileName(first_image_path)
7679

77-
second_reader = self._reader_for_file(second_image_path)
80+
if ".png" in second_image_path:
81+
second_reader = vtk.vtkPNGReader()
82+
elif (".jpg" in second_image_path) or (".jpeg" in second_image_path):
83+
second_reader = vtk.vtkJPEGReader()
7884
second_reader.SetFileName(second_image_path)
7985

8086
images_diff = vtk.vtkImageDifference()
8187
images_diff.SetInputConnection(first_reader.GetOutputPort())
8288
images_diff.SetImageConnection(second_reader.GetOutputPort())
8389
images_diff.Update()
8490

85-
error = images_diff.GetThresholdedError()
86-
print(f"Image comparison error for {second_image_path}: {error} (tolerance: {tolerance})", flush=True)
87-
return error <= tolerance
91+
print(f"{images_diff.GetThresholdedError()=}")
92+
return images_diff.GetThresholdedError()
8893

89-
def compare_image(self, nb_messages, filename, tolerance=0.0):
90-
91-
self.ws.settimeout(4.0)
92-
image = None
93-
deadline = time.time() + 12.0
94-
while time.time() < deadline:
95-
try:
96-
msg = self.ws.recv()
97-
except WebSocketTimeoutException:
98-
continue
99-
if isinstance(msg, bytes):
100-
image = msg
101-
break
102-
if not isinstance(msg, bytes):
103-
return False
104-
test_file_path = os.path.abspath(
105-
os.path.join(self.test_output_dir, "test.jpeg")
106-
)
107-
with open(test_file_path, "wb") as f:
108-
f.write(image)
109-
format = "jpeg"
110-
try:
111-
meta = self.ws.recv()
112-
try:
113-
format = json.loads(meta)["result"]["format"]
114-
except Exception:
115-
pass
116-
except WebSocketTimeoutException:
117-
pass
118-
119-
if format != "jpeg":
120-
new_path = os.path.abspath(
94+
def compare_image(self, nb_messages, filename):
95+
for message in range(nb_messages):
96+
print(f"{message=}", flush=True)
97+
image = self.ws.recv()
98+
if isinstance(image, bytes):
99+
test_file_path = os.path.abspath(
100+
os.path.join(self.test_output_dir, "test.jpeg")
101+
)
102+
with open(test_file_path, "wb") as f:
103+
f.write(image)
104+
f.close()
105+
if isinstance(image, bytes):
106+
response = self.ws.recv()
107+
print(f"{response=}", flush=True)
108+
format = json.loads(response)["result"]["format"]
109+
test_file_path = os.path.abspath(
121110
os.path.join(self.test_output_dir, f"test.{format}")
122111
)
123-
os.replace(test_file_path, new_path)
124-
test_file_path = new_path
112+
with open(test_file_path, "wb") as f:
113+
f.write(image)
114+
f.close()
115+
116+
path_image = os.path.join(self.images_dir_path, filename)
125117

126-
path_image = os.path.join(self.images_dir_path, filename)
127-
return self.images_diff(test_file_path, path_image, tolerance)
118+
return self.images_diff(test_file_path, path_image) == 0.0
128119

129120
def _init_ws(self):
130121
self.ws.send(
@@ -204,10 +195,10 @@ def configure_test_environment():
204195
os.environ["TEST_DB_PATH"] = str(db_path)
205196

206197
yield
207-
tmp_data_path = os.environ.get("DATA_FOLDER_PATH")
208-
if tmp_data_path and "ogw_test_data_" in tmp_data_path:
209-
shutil.rmtree(tmp_data_path, ignore_errors=True)
210-
print(f"Cleaned up test data folder: {tmp_data_path}", flush=True)
198+
# tmp_data_path = os.environ.get("DATA_FOLDER_PATH")
199+
# if tmp_data_path and "ogw_test_data_" in tmp_data_path:
200+
# shutil.rmtree(tmp_data_path, ignore_errors=True)
201+
# print(f"Cleaned up test data folder: {tmp_data_path}", flush=True)
211202

212203

213204
@pytest.fixture

src/tests/data/123456789/CrossSection.vtm

Lines changed: 0 additions & 28 deletions
This file was deleted.

src/tests/data/123456789/hat.vtp

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/tests/data/edged_curve.vtp

Lines changed: 0 additions & 20 deletions
This file was deleted.

src/tests/mesh/points/test_mesh_points_protocols.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ def test_points_size(server, dataset_factory):
3232
[{"id": mesh_id, "size": 15}],
3333
)
3434
assert server.compare_image(3, "mesh/points/size.jpeg") == True
35+
print("####")
3536

3637

3738
def test_points_color(server, dataset_factory):

src/tests/mesh/test_mesh_protocols.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
def test_register_mesh(server, dataset_factory):
77
dataset_factory(id="123456789", viewable_file_name="hat.vtp")
8-
8+
99
server.call(
1010
VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"],
1111
[{"id": "123456789"}],
@@ -15,12 +15,12 @@ def test_register_mesh(server, dataset_factory):
1515

1616
def test_deregister_mesh(server, dataset_factory):
1717
dataset_factory(id="123456789", viewable_file_name="hat.vtp")
18-
18+
1919
server.call(
2020
VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["register"]["rpc"],
2121
[{"id": "123456789"}],
2222
)
23-
23+
2424
server.call(
2525
VtkMeshView.mesh_prefix + VtkMeshView.mesh_schemas_dict["deregister"]["rpc"],
2626
[{"id": "123456789"}],

src/tests/test_viewer_protocols.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def test_take_screenshot(server, dataset_factory):
9393
server.images_dir_path, "viewer/take_screenshot_with_background.jpg"
9494
)
9595

96-
assert server.images_diff(first_image_path, second_image_path) == 0.0
96+
assert server.images_diff(first_image_path, second_image_path) == True
9797

9898
# Take a screenshot without background png
9999
server.call(
@@ -122,7 +122,7 @@ def test_take_screenshot(server, dataset_factory):
122122
server.images_dir_path, "viewer/take_screenshot_without_background.png"
123123
)
124124

125-
assert server.images_diff(first_image_path, second_image_path) == 0.0
125+
assert server.images_diff(first_image_path, second_image_path) == True
126126

127127
# Take a screenshot with background png
128128
server.call(
@@ -151,7 +151,7 @@ def test_take_screenshot(server, dataset_factory):
151151
server.images_dir_path, "viewer/take_screenshot_with_background.png"
152152
)
153153

154-
assert server.images_diff(first_image_path, second_image_path) == 0.0
154+
assert server.images_diff(first_image_path, second_image_path) == True
155155

156156

157157
def test_picked_ids(server, dataset_factory):
@@ -169,7 +169,9 @@ def test_picked_ids(server, dataset_factory):
169169
print("Warning: picked_ids returned None response", flush=True)
170170
return
171171
if "result" not in response:
172-
print(f"Warning: No 'result' key in picked_ids response: {response}", flush=True)
172+
print(
173+
f"Warning: No 'result' key in picked_ids response: {response}", flush=True
174+
)
173175
return
174176
result = response["result"]
175177
if result is None:
@@ -339,4 +341,4 @@ def test_combined_scaling_and_grid(server, dataset_factory):
339341
+ VtkViewerView.viewer_schemas_dict["set_z_scaling"]["rpc"],
340342
[{"z_scale": 2.5}],
341343
)
342-
assert server.compare_image(3, "viewer/combined_scaling_and_grid.jpeg") == True
344+
assert server.compare_image(3, "viewer/combined_scaling_and_grid.jpeg") == True

0 commit comments

Comments
 (0)