Skip to content

Commit c090f4f

Browse files
committed
hard code logic in config.py to match most of the tests
1 parent e63bb5c commit c090f4f

File tree

3 files changed

+65
-7
lines changed

3 files changed

+65
-7
lines changed

src/opengeodeweb_viewer/config.py

Lines changed: 52 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import os
2+
from glob import glob
3+
import tempfile
4+
from shutil import copyfile, copytree
25
from sys import platform
36

47

@@ -26,7 +29,53 @@ def dev_config():
2629

2730
def test_config(path):
2831
default_config()
29-
print(f"{os.path.dirname(__file__)=}", flush=True)
30-
os.environ["DATA_FOLDER_PATH"] = os.path.join(path, "data")
3132

32-
print(f"{os.environ.get('DATA_FOLDER_PATH')=}", flush=True)
33+
tmp_data_root = tempfile.mkdtemp(prefix="ogw_test_data_")
34+
os.environ["DATA_FOLDER_PATH"] = tmp_data_root
35+
36+
original_data_path = os.path.join(path, "data")
37+
if not os.path.exists(original_data_path):
38+
raise FileNotFoundError(f"Test data folder not found: {original_data_path}")
39+
40+
valid_extensions = {".vtp", ".vti", ".vtu", ".vtm", ".png", ".jpeg", ".jpg"}
41+
42+
legacy_id = "123456789"
43+
legacy_dir = os.path.join(tmp_data_root, legacy_id)
44+
os.makedirs(legacy_dir, exist_ok=True)
45+
46+
for root, dirs, files in os.walk(original_data_path):
47+
rel_root = os.path.relpath(root, original_data_path)
48+
49+
# Copier sous-dossiers (comme cube/) dans leur ensemble
50+
for d in dirs:
51+
src_dir = os.path.join(root, d)
52+
dst_dir = os.path.join(tmp_data_root, legacy_id, d)
53+
if not os.path.exists(dst_dir):
54+
copytree(src_dir, dst_dir, dirs_exist_ok=True)
55+
print(f"📦 Copied folder: {src_dir}{dst_dir}", flush=True)
56+
57+
for file_name in files:
58+
ext = os.path.splitext(file_name)[1].lower()
59+
if ext not in valid_extensions:
60+
continue
61+
62+
full_path = os.path.join(root, file_name)
63+
uuid = os.path.splitext(file_name)[0]
64+
65+
# uuid/filename
66+
dst_dir = os.path.join(tmp_data_root, uuid)
67+
os.makedirs(dst_dir, exist_ok=True)
68+
dst = os.path.join(dst_dir, file_name)
69+
copyfile(full_path, dst)
70+
71+
# legacy path: 123456789/filename
72+
legacy_dst = os.path.join(legacy_dir, file_name)
73+
copyfile(full_path, legacy_dst)
74+
75+
# root-level copy
76+
root_level_dst = os.path.join(tmp_data_root, file_name)
77+
copyfile(full_path, root_level_dst)
78+
79+
print(f"📄 Copied file: {full_path}{root_level_dst}", flush=True)
80+
81+
print(f"\n✅ DATA_FOLDER_PATH set to: {tmp_data_root}", flush=True)

src/opengeodeweb_viewer/object/object_methods.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ def __init__(self):
1616
def registerObject(self, id, file_name, reader, filter, mapper):
1717
actor = vtk.vtkActor()
1818
self.register_object(id, reader, filter, actor, mapper, {})
19-
full_path = os.path.join(self.DATA_FOLDER_PATH, id, file_name)
20-
if not os.path.exists(full_path):
21-
full_path = os.path.join(self.DATA_FOLDER_PATH, file_name)
22-
reader.SetFileName(full_path)
19+
reader.SetFileName(os.path.join(self.DATA_FOLDER_PATH, id, file_name))
2320
actor.SetMapper(mapper)
2421
mapper.SetColorModeToMapScalars()
2522
mapper.SetResolveCoincidentTopologyLineOffsetParameters(1, -0.1)

src/tests/conftest.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import vtk
77
import os
88
from opengeodeweb_viewer import config
9+
import shutil
910

1011

1112
class ServerMonitor:
@@ -155,3 +156,14 @@ def server(xprocess):
155156
# clean up whole process tree afterwards
156157
xprocess.getinfo(name).terminate()
157158
monitor.print_log()
159+
160+
161+
@pytest.fixture(scope="session", autouse=True)
162+
def configure_test_environment():
163+
base_path = os.path.dirname(__file__)
164+
config.test_config(base_path)
165+
yield
166+
tmp_data_path = os.environ.get("DATA_FOLDER_PATH")
167+
if tmp_data_path and "ogw_test_data_" in tmp_data_path:
168+
shutil.rmtree(tmp_data_path, ignore_errors=True)
169+
print(f"Cleaned up test data folder: {tmp_data_path}", flush=True)

0 commit comments

Comments
 (0)