Skip to content

Commit 2237102

Browse files
committed
test(compare-images): use copy_files_to_pyodide
1 parent 5fac6c3 commit 2237102

16 files changed

+127
-210
lines changed

packages/compare-images/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
typescript/demo-app/
22
typescript/src/version.ts
33
dist/
4-
test/
4+
test/data
55
package-lock.json
66
typescript/test/browser/demo-app/public
77
pyodide/

packages/compare-images/pixi.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ description = "Download Pyodide"
102102
[feature.python.tasks.test-emscripten]
103103
cmd = '''mkdir -p dist/pyodide &&
104104
cp -r ../../pyodide dist/ &&
105+
cp -r ../../test/data tests/ &&
105106
hatch build -t wheel ./dist/pyodide/ &&
106107
pytest --dist-dir=./dist/pyodide --rt=chrome'''
107108
cwd = "python/itkwasm-compare-images-emscripten"
@@ -121,6 +122,7 @@ description = "Serve itkwasm-compare-images-emscripten for development"
121122
[feature.python.tasks.test-dispatch]
122123
cmd = '''mkdir -p dist/pyodide &&
123124
cp -r ../../pyodide dist/ &&
125+
cp -r ../../test/data tests/ &&
124126
hatch build -t wheel ./dist/pyodide/ &&
125127
cp ../itkwasm-compare-images-emscripten/dist/pyodide/itkwasm_compare_images_emscripten*.whl ./dist/pyodide/ &&
126128
pytest --dist-dir=./dist/pyodide --rt=chrome'''

packages/compare-images/python/itkwasm-compare-images-emscripten/test/fixtures.py

Lines changed: 0 additions & 30 deletions
This file was deleted.

packages/compare-images/python/itkwasm-compare-images-emscripten/test/test_itkwasm_compare_images.py

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import pytest
2+
import sys
3+
4+
from pathlib import Path
5+
6+
if sys.version_info < (3,10):
7+
pytest.skip("Skipping pyodide tests on older Python", allow_module_level=True)
8+
9+
from itkwasm_compare_images_emscripten import __version__ as test_package_version
10+
11+
def package_wheel():
12+
wheel_stem = f"itkwasm_compare_images_emscripten-{test_package_version}-py3-none-any.whl"
13+
wheel_path = Path(__file__).parent.parent / 'dist' / 'pyodide' / wheel_stem
14+
return wheel_path, wheel_stem
15+
16+
def input_data():
17+
input_base_path = Path(__file__).parent.parent / 'tests' / 'data'
18+
test_files = [f for f in (input_base_path / 'input').rglob('*') if f.is_file()]
19+
# Must be unique.
20+
# test_files += [f for f in (input_base_path / 'baseline').rglob('*') if f.is_file()]
21+
return [(input_base_path / f, f.name) for f in test_files]
22+
23+
def input_file_list():
24+
return input_data() + [package_wheel()]

packages/compare-images/python/itkwasm-compare-images-emscripten/test/test_compare_images_async.py renamed to packages/compare-images/python/itkwasm-compare-images-emscripten/tests/test_compare_double_images_async.py

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,22 @@
1+
import pytest
12
import sys
23

34
if sys.version_info < (3,10):
45
pytest.skip("Skipping pyodide tests on older Python", allow_module_level=True)
56

67
from pytest_pyodide import run_in_pyodide
7-
from .fixtures import package_wheel, input_data
8+
from pytest_pyodide.decorator import copy_files_to_pyodide
9+
from .fixtures import input_file_list
810

11+
file_list = input_file_list()
12+
13+
@copy_files_to_pyodide(file_list=file_list,install_wheels=True)
914
@run_in_pyodide(packages=['micropip', 'numpy'])
10-
async def test_compare_double_images_async(selenium, package_wheel, input_data):
15+
async def test_compare_double_images_async(selenium):
1116
import micropip
12-
await micropip.install(package_wheel)
1317
await micropip.install('itkwasm-image-io-emscripten')
14-
def write_input_data_to_fs(input_data, filename):
15-
with open(filename, 'wb') as fp:
16-
fp.write(input_data[filename])
18+
19+
from itkwasm_compare_images_emscripten import compare_double_images_async
1720

1821
import numpy as np
1922
from itkwasm import Image
@@ -22,11 +25,9 @@ def write_input_data_to_fs(input_data, filename):
2225
from itkwasm_image_io_emscripten import imread_async
2326

2427
test_image_file = 'cake_easy.iwi.cbor'
25-
write_input_data_to_fs(input_data, test_image_file)
2628
test_image = await imread_async(test_image_file)
2729

2830
baseline_image_file = 'cake_hard.iwi.cbor'
29-
write_input_data_to_fs(input_data, baseline_image_file)
3031
baseline_image = await imread_async(baseline_image_file)
3132

3233
metrics, difference_image, difference_image_rendering = await compare_double_images_async(test_image, baseline_images=[baseline_image])
@@ -41,14 +42,11 @@ def write_input_data_to_fs(input_data, filename):
4142
assert difference_image.imageType.componentType == 'float64'
4243
assert difference_image_rendering.imageType.componentType == 'uint8'
4344

45+
@copy_files_to_pyodide(file_list=file_list,install_wheels=True)
4446
@run_in_pyodide(packages=['micropip', 'numpy'])
45-
async def test_compare_images_async(selenium, package_wheel, input_data):
47+
async def test_compare_images_async(selenium):
4648
import micropip
47-
await micropip.install(package_wheel)
4849
await micropip.install('itkwasm-image-io-emscripten')
49-
def write_input_data_to_fs(input_data, filename):
50-
with open(filename, 'wb') as fp:
51-
fp.write(input_data[filename])
5250

5351
from itkwasm_compare_images_emscripten import compare_images_async
5452
from itkwasm_image_io_emscripten import imread_async
@@ -57,11 +55,9 @@ def write_input_data_to_fs(input_data, filename):
5755
from itkwasm.pyodide import to_js as itkwasm_to_js
5856

5957
test_image_file = 'cake_easy.iwi.cbor'
60-
write_input_data_to_fs(input_data, test_image_file)
6158
test_image = await imread_async(test_image_file)
6259

6360
baseline_image_file = 'cake_hard.iwi.cbor'
64-
write_input_data_to_fs(input_data, baseline_image_file)
6561
baseline_image = await imread_async(baseline_image_file)
6662

6763
metrics, difference_image, difference_image_rendering = await compare_images_async(test_image, baseline_images=[baseline_image])
@@ -77,11 +73,9 @@ def write_input_data_to_fs(input_data, filename):
7773
assert difference_image_rendering.imageType.componentType == 'uint8'
7874

7975
test_image_file = 'cake_easy.png'
80-
write_input_data_to_fs(input_data, test_image_file)
8176
test_image = await imread_async(test_image_file)
8277

8378
baseline_image_file = 'cake_hard.png'
84-
write_input_data_to_fs(input_data, baseline_image_file)
8579
baseline_image = await imread_async(baseline_image_file)
8680

8781
metrics, difference_image, difference_image_rendering = await compare_images_async(test_image, baseline_images=[baseline_image])
@@ -97,11 +91,9 @@ def write_input_data_to_fs(input_data, filename):
9791
assert difference_image_rendering.imageType.componentType == 'uint8'
9892

9993
test_image_file = 'apple.jpg'
100-
write_input_data_to_fs(input_data, test_image_file)
10194
test_image = await imread_async(test_image_file)
10295

10396
baseline_image_file = 'orange.jpg'
104-
write_input_data_to_fs(input_data, baseline_image_file)
10597
baseline_image = await imread_async(baseline_image_file)
10698

10799
metrics, difference_image, difference_image_rendering = await compare_images_async(test_image, baseline_images=[baseline_image])
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import pytest
2+
import sys
3+
4+
if sys.version_info < (3,10):
5+
pytest.skip("Skipping pyodide tests on older Python", allow_module_level=True)
6+
7+
from pytest_pyodide import run_in_pyodide
8+
from pytest_pyodide.decorator import copy_files_to_pyodide
9+
from .fixtures import input_file_list
10+
11+
file_list = input_file_list()
12+
13+
@copy_files_to_pyodide(file_list=file_list,install_wheels=True)
14+
@run_in_pyodide
15+
async def test_vector_magnitude_async(selenium):
16+
from itkwasm_compare_images_emscripten import vector_magnitude_async

packages/compare-images/python/itkwasm-compare-images/test/fixtures.py

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)