diff --git a/requirements.in b/requirements.in index 0d587346..e19bd7d8 100644 --- a/requirements.in +++ b/requirements.in @@ -1,10 +1,10 @@ -opengeode-core==18.1.3 -opengeode-io==7.8.2 -opengeode-geosciences==9.7.2 -opengeode-geosciencesio==5.10.1 +opengeode-core==18.2.0 +opengeode-io==7.8.3 +opengeode-geosciences==9.8.0 +opengeode-geosciencesio==5.10.2 opengeode-inspector==6.12.1 -opengeode-inspector-geosciences==1.2.0 -geode-common==33.26.3 +opengeode-inspector-geosciences==1.2.1 +geode-common==33.26.5 geode-viewables==3.5.0 flask[async]==3.1.2 flask-cors==6.0.2 diff --git a/requirements.txt b/requirements.txt index 33b4cfa0..39a99cfa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,7 +16,7 @@ flask[async]==3.* # flask-cors flask-cors==6.0.2 # via -r requirements.in -geode-common==33.26.3 +geode-common==33.26.5 # via # -r requirements.in # geode-viewables @@ -31,7 +31,7 @@ markupsafe==3.* # flask # jinja2 # werkzeug -opengeode-core==18.1.3 +opengeode-core==18.2.0 # via # -r requirements.in # geode-common @@ -41,21 +41,21 @@ opengeode-core==18.1.3 # opengeode-inspector # opengeode-inspector-geosciences # opengeode-io -opengeode-geosciences==9.7.2 +opengeode-geosciences==9.8.0 # via # -r requirements.in # geode-viewables # opengeode-geosciencesio # opengeode-inspector-geosciences -opengeode-geosciencesio==5.10.1 +opengeode-geosciencesio==5.10.2 # via -r requirements.in opengeode-inspector==6.12.1 # via # -r requirements.in # opengeode-inspector-geosciences -opengeode-inspector-geosciences==1.2.0 +opengeode-inspector-geosciences==1.2.1 # via -r requirements.in -opengeode-io==7.8.2 +opengeode-io==7.8.3 # via # -r requirements.in # geode-viewables @@ -66,4 +66,3 @@ werkzeug==3.1.8 # flask # flask-cors -opengeodeweb-microservice==1.*,>=1.3.0rc1 diff --git a/src/opengeodeweb_back/utils_functions.py b/src/opengeodeweb_back/utils_functions.py index d1847964..6ae05c84 100644 --- a/src/opengeodeweb_back/utils_functions.py +++ b/src/opengeodeweb_back/utils_functions.py @@ -1,4 +1,5 @@ # Standard library imports +import base64 import os import threading import time @@ -304,7 +305,9 @@ def save_all_viewables_and_return_info( light_path = results[2] with open(light_path, "rb") as f: binary_light_viewable = f.read() - binary_light_viewable_str = binary_light_viewable.decode("utf-8") + binary_light_viewable_str = base64.b64encode(binary_light_viewable).decode( + "ascii" + ) data.viewable_file = os.path.basename(viewable_path) data.light_viewable_file = os.path.basename(light_path) else: diff --git a/tests/test_utils_functions.py b/tests/test_utils_functions.py index fff7ff85..7c959ae4 100644 --- a/tests/test_utils_functions.py +++ b/tests/test_utils_functions.py @@ -1,4 +1,5 @@ # Standard library imports +import base64 import re import os @@ -180,7 +181,11 @@ def test_generate_files_from_object( assert re.match(r"[0-9a-f]{32}", result["id"]) assert isinstance(result["viewer_type"], str) assert isinstance(result["binary_light_viewable"], str) - assert result["binary_light_viewable"].startswith('') + light_viewable_bytes = base64.b64decode( + result["binary_light_viewable"], validate=True + ) + assert light_viewable_bytes.startswith(b'') + assert b'' in light_viewable_bytes data = Data.get(result["id"]) assert data is not None @@ -191,6 +196,8 @@ def test_generate_files_from_object( assert os.path.exists(os.path.join(data_path, result["native_file"])) assert os.path.exists(os.path.join(data_path, result["viewable_file"])) assert os.path.exists(os.path.join(data_path, data.light_viewable_file)) + with open(os.path.join(data_path, data.light_viewable_file), "rb") as f: + assert f.read() == light_viewable_bytes def test_generate_files_from_file(