From 2607cba1f4c501e8174bcc01b0879515b393818b Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Tue, 21 Jul 2026 15:22:08 +0100
Subject: [PATCH 1/3] Fix test_render_image_region_tile_params_big_image
---
.../test/integration/test_rendering.py | 35 +++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/components/tools/OmeroWeb/test/integration/test_rendering.py b/components/tools/OmeroWeb/test/integration/test_rendering.py
index db4c1b1983c..fab159b975e 100644
--- a/components/tools/OmeroWeb/test/integration/test_rendering.py
+++ b/components/tools/OmeroWeb/test/integration/test_rendering.py
@@ -24,6 +24,7 @@
import json
import omero
import omero.clients
+import time
from omeroweb.testlib import IWebTest
from omeroweb.testlib import post, get
@@ -452,6 +453,30 @@ def test_render_image_region_tile_params_invalid_resolution(self):
finally:
self.assert_no_leaked_rendering_engines()
+
+ def wait_until_renderable(self, image_id, timeout=60):
+ django_client = self.new_django_client_from_session_id(
+ self.client.getSessionId()
+ )
+
+ request_url = reverse(
+ "webgateway_render_image_region",
+ kwargs={"iid": str(image_id), "z": "0", "t": "0"},
+ )
+
+ deadline = time.time() + timeout
+ while time.time() < deadline:
+ response = django_client.get(
+ request_url,
+ {"tile": "0,0,0,512,512"},
+ )
+ if response.status_code == 200:
+ return
+
+ time.sleep(1)
+
+ pytest.fail("Timed out waiting for image to become renderable")
+
def test_render_image_region_tile_params_big_image(self, tmpdir):
"""
Tests the retrieval of pyramid image at different
@@ -459,6 +484,9 @@ def test_render_image_region_tile_params_big_image(self, tmpdir):
"""
image_id = self.import_pyramid(tmpdir, client=self.client)
+ # Wait until the pyramid is renderable
+ self.wait_until_renderable(image_id)
+
request_url = reverse(
'webgateway_render_image_region',
kwargs={'iid': str(image_id), 'z': '0', 't': '0'}
@@ -470,6 +498,13 @@ def test_render_image_region_tile_params_big_image(self, tmpdir):
try:
data['tile'] = '0,0,0,512,512'
response = get(django_client, request_url, data)
+
+
+ if response.status_code != 200:
+ print(response.status_code)
+ print(response.content.decode(errors="replace"))
+
+ assert response.status_code == 200
tile_content = response.content
tile = Image.open(BytesIO(tile_content))
assert tile.size == (512, 512)
From 2c9d2273cfc466372094a2a4d1811d4251d0f8e4 Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Tue, 21 Jul 2026 15:35:13 +0100
Subject: [PATCH 2/3] flake8
---
components/tools/OmeroWeb/test/integration/test_rendering.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/components/tools/OmeroWeb/test/integration/test_rendering.py b/components/tools/OmeroWeb/test/integration/test_rendering.py
index fab159b975e..b1381685fc9 100644
--- a/components/tools/OmeroWeb/test/integration/test_rendering.py
+++ b/components/tools/OmeroWeb/test/integration/test_rendering.py
@@ -25,6 +25,7 @@
import omero
import omero.clients
import time
+import pytest
from omeroweb.testlib import IWebTest
from omeroweb.testlib import post, get
@@ -453,7 +454,6 @@ def test_render_image_region_tile_params_invalid_resolution(self):
finally:
self.assert_no_leaked_rendering_engines()
-
def wait_until_renderable(self, image_id, timeout=60):
django_client = self.new_django_client_from_session_id(
self.client.getSessionId()
@@ -499,7 +499,6 @@ def test_render_image_region_tile_params_big_image(self, tmpdir):
data['tile'] = '0,0,0,512,512'
response = get(django_client, request_url, data)
-
if response.status_code != 200:
print(response.status_code)
print(response.content.decode(errors="replace"))
From ace2e3f5991b752e40fc18e70aa5b2c1eac3b01a Mon Sep 17 00:00:00 2001
From: pwalczysko
Date: Tue, 21 Jul 2026 17:41:24 +0100
Subject: [PATCH 3/3] Try to fix the other 2 failing tests with the
wait_until_renderable method
---
components/tools/OmeroWeb/test/integration/test_rendering.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/components/tools/OmeroWeb/test/integration/test_rendering.py b/components/tools/OmeroWeb/test/integration/test_rendering.py
index b1381685fc9..821a1233d43 100644
--- a/components/tools/OmeroWeb/test/integration/test_rendering.py
+++ b/components/tools/OmeroWeb/test/integration/test_rendering.py
@@ -552,6 +552,9 @@ def test_render_image_region_region_params_big_image(self, tmpdir):
"""
image_id = self.import_pyramid(tmpdir, client=self.client)
+ # Wait until the pyramid is renderable
+ self.wait_until_renderable(image_id)
+
request_url = reverse(
'webgateway_render_image_region',
kwargs={'iid': str(image_id), 'z': '0', 't': '0'}
@@ -598,6 +601,8 @@ def test_render_image_region_big_image_resolution(self, tmpdir):
resolution. Resolution changes is supported in that case.
"""
image_id = self.import_pyramid(tmpdir, client=self.client)
+ # Wait until the pyramid is renderable
+ self.wait_until_renderable(image_id)
conn = omero.gateway.BlitzGateway(client_obj=self.client)
image = conn.getObject("Image", image_id)
image._prepareRenderingEngine()