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()