Skip to content

Fix/tests #16

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Mar 12, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ venv/
.vscode/
__pycache__/
.env
data/
/node_modules
latest_logs
schemas.json
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ dependencies = {file = ["requirements.txt"]}
where = ["src"]

[tool.setuptools.package-data]
"opengeodeweb_Viewer.rpc.schemas" = ["*.json"]
"opengeodeweb_viewer.rpc.schemas" = ["*.json"]

[tool.semantic_release]
version_toml = [
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/opengeodeweb_viewer/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ def dev_config():
def test_config():
default_config()
os.environ["DATA_FOLDER_PATH"] = os.path.join(
os.path.dirname(__file__), "..", "..", "tests", "data"
os.path.dirname(__file__), "..", "tests", "data"
)
8 changes: 6 additions & 2 deletions src/opengeodeweb_viewer/vtkw_server.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import sys
import argparse
import config
from opengeodeweb_viewer import config
import os

from wslink import server
Expand Down Expand Up @@ -77,7 +77,7 @@ def initialize(self):
# =============================================================================


if __name__ == "__main__":
def run_server():
basedir = os.path.abspath(os.path.dirname(__file__))
dot_env_path = os.path.join(basedir, "../../.env")
if os.path.isfile(dot_env_path):
Expand All @@ -99,3 +99,7 @@ def initialize(self):

_Server.configure(args)
server.start_webserver(options=args, protocol=_Server)


if __name__ == "__main__":
run_server()
Empty file added src/tests/__init__.py
Empty file.
28 changes: 20 additions & 8 deletions tests/conftest.py → src/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,19 @@
from xprocess import ProcessStarter
import vtk
import os
from src.opengeodeweb_viewer import config
from opengeodeweb_viewer import config


class ServerMonitor:
def __init__(self, log):
self.log = log
self.ws = create_connection("ws://localhost:1234/ws")
self.images_dir_path = os.path.abspath(
os.path.join(os.path.dirname(__file__), "data", "images")
)
self.test_output_dir = os.path.abspath(
os.path.join(os.path.dirname(__file__), "tests_output")
)
self.ws.send(
json.dumps(
{
Expand Down Expand Up @@ -53,28 +59,33 @@ def get_response(self):
response = eval(self.ws.recv())
return response

def compare_image(self, nb_messages, path_image):
def compare_image(self, nb_messages, filename):
for i in range(nb_messages):
print(f"{i=}", flush=True)
image = self.ws.recv()
if isinstance(image, bytes):
test_filename = os.path.abspath(f"tests/tests_output/test.jpeg")
with open(test_filename, "wb") as f:
test_file_path = os.path.abspath(
os.path.join(self.test_output_dir, "test.jpeg")
)
with open(test_file_path, "wb") as f:
f.write(image)
f.close()
if isinstance(image, bytes):
print(f"{image=}", flush=True)
response = self.ws.recv()
print(f"{response=}", flush=True)
format = json.loads(response)["result"]["format"]
test_filename = os.path.abspath(f"tests/tests_output/test.{format}")
with open(test_filename, "wb") as f:
test_file_path = os.path.abspath(
os.path.join(self.test_output_dir, f"test.{format}")
)
with open(test_file_path, "wb") as f:
f.write(image)
f.close()

test_reader = vtk.vtkJPEGReader()
test_reader.SetFileName(test_filename)
test_reader.SetFileName(test_file_path)

path_image = os.path.join(self.images_dir_path, filename)
answer_reader = vtk.vtkJPEGReader()
answer_reader.SetFileName(path_image)

Expand All @@ -94,12 +105,13 @@ def __init__(self, root_path):

def get_xprocess_args(self):

server_path = "src/opengeodeweb_viewer/vtkw_server.py"
server_path = "opengeodeweb_viewer/vtkw_server.py"
print(f"{server_path=}", flush=True)

class Starter(ProcessStarter):
terminate_on_interrupt = True
pattern = "wslink: Starting factory"
timeout = 10

# command to start process
args = [
Expand Down
File renamed without changes.
File renamed without changes.
Binary file added src/tests/data/images/apply_textures.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
File renamed without changes
Binary file added src/tests/data/images/toggle_edge_visibility.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
105 changes: 105 additions & 0 deletions src/tests/test_protocol.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
import os


def test_create_visualization(server):
server.call("create_visualization")
assert server.compare_image(3, "create_visualization.jpeg") == True


# def test_reset_camera(server):
# server.call("reset_camera")
# assert server.compare_image(3, "reset_camera.jpeg") == True


# def test_create_object_pipeline(server):
# server.call("create_object_pipeline", [{"id": "123456", "file_name": "hat.vtp"}])
# assert server.compare_image(3, "create_object_pipeline.jpeg") == True


# def test_delete_object_pipeline(server):
# server.call("create_object_pipeline", [{"id": "123456789", "file_name": "hat.vtp"}])
# assert server.compare_image(3, "create_object_pipeline.jpeg") == True

# server.call("delete_object_pipeline", [{"id": "123456789"}])
# assert server.compare_image(3, "delete_object_pipeline.jpeg") == True


# def test_toggle_object_visibility(server):
# server.call("create_object_pipeline", [{"id": "123456789", "file_name": "hat.vtp"}])
# assert server.compare_image(3, "create_object_pipeline.jpeg") == True

# server.call("toggle_object_visibility", [{"id": "123456789", "is_visible": False}])
# assert server.compare_image(3, "toggle_object_visibility_1.jpeg") == True

# server.call("toggle_object_visibility", [{"id": "123456789", "is_visible": True}])
# assert server.compare_image(3, "toggle_object_visibility_2.jpeg") == True


# def test_apply_textures(server):

# server.call(
# "create_object_pipeline",
# [{"id": "123456789", "file_name": "hat.vtp"}],
# )
# assert server.compare_image(3, "create_object_pipeline.jpeg") == True

# server.call(
# "apply_textures",
# [
# {
# "id": "123456789",
# "textures": [
# {
# "texture_name": "lambert2SG",
# "texture_file_name": "hat_lambert2SG.vti",
# }
# ],
# }
# ],
# )
# assert server.compare_image(3, "apply_textures.jpeg") == True


# def test_get_point_position(server):

# server.call(
# "create_object_pipeline",
# [{"id": "123456789", "file_name": "hat.vtp"}],
# )
# assert server.compare_image(3, "create_object_pipeline.jpeg") == True

# server.call("get_point_position", [{"x": 0, "y": 0}])
# response = server.get_response()
# assert "x" in response["result"]
# assert "y" in response["result"]
# assert "z" in response["result"]
# x = response["result"]["x"]
# y = response["result"]["y"]
# z = response["result"]["z"]
# assert type(x) is float
# assert type(y) is float
# assert type(z) is float


# def test_toggle_edge_visibility(server):

# server.call(
# "create_object_pipeline",
# [{"id": "123456789", "file_name": "hat.vtp"}],
# )
# assert server.compare_image(3, "create_object_pipeline.jpeg") == True

# server.call("toggle_edge_visibility", [{"id": "123456789", "visibility": True}])
# assert server.compare_image(3, "toggle_edge_visibility.jpeg") == True


# def test_set_color(server):

# server.call(
# "create_object_pipeline",
# [{"id": "123456789", "file_name": "hat.vtp"}],
# )
# assert server.compare_image(3, "create_object_pipeline.jpeg") == True

# server.call("set_color", [{"id": "123456789", "red": 50, "green": 2, "blue": 250}])
# assert server.compare_image(3, "set_color.jpeg") == True
122 changes: 0 additions & 122 deletions tests/test_protocol.py

This file was deleted.