--- a +++ b/tests/test_readers.py @@ -0,0 +1,48 @@ +from pathlib import Path + +import pytest + +import wsic + + +class TestGetTileScenareos: + """Test scenarios specific to get_tile().""" + + scenarios = [ + ( + "get_tile openslide", + { + "reader_class": wsic.readers.OpenSlideReader, + "filepath": Path("CMU-1-Small-Region.svs"), + "decode": False, + }, + ), + ( + "get_tile tiffreader", + { + "reader_class": wsic.readers.TIFFReader, + "filepath": Path("CMU-1-Small-Region.svs"), + "decode": True, + }, + ), + ] + + @staticmethod + def test_get_tile_decode_false( + samples_path, + filepath: str, + reader_class: wsic.readers.Reader, + decode: bool, + **kwargs + ): + """Test that get_tile returns bytes or raises NotImplementedError.""" + filepath = samples_path / filepath + assert filepath.exists() + reader = reader_class(filepath) + if not decode: + with pytest.raises(NotImplementedError): + reader.get_tile((0, 0), decode=False) + return + + tile = reader.get_tile((0, 0), decode=False) + assert isinstance(tile, bytes)