File tree Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Expand file tree Collapse file tree 2 files changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ use std::sync::Arc;
33use async_tiff:: metadata:: { PrefetchBuffer , TiffMetadataReader } ;
44use async_tiff:: reader:: AsyncFileReader ;
55use async_tiff:: TIFF ;
6- use pyo3:: exceptions:: PyIndexError ;
6+ use pyo3:: exceptions:: { PyFileNotFoundError , PyIndexError } ;
77use pyo3:: prelude:: * ;
88use pyo3:: types:: PyType ;
99use pyo3_async_runtimes:: tokio:: future_into_py;
@@ -32,7 +32,9 @@ impl PyTIFF {
3232 let reader = store. into_async_file_reader ( path) ;
3333
3434 let cog_reader = future_into_py ( py, async move {
35- let metadata_fetch = PrefetchBuffer :: new ( reader. clone ( ) , prefetch) . await . unwrap ( ) ;
35+ let metadata_fetch = PrefetchBuffer :: new ( reader. clone ( ) , prefetch)
36+ . await
37+ . map_err ( |err| PyFileNotFoundError :: new_err ( err. to_string ( ) ) ) ?;
3638 let mut metadata_reader = TiffMetadataReader :: try_open ( & metadata_fetch) . await . unwrap ( ) ;
3739 let ifds = metadata_reader
3840 . read_all_ifds ( & metadata_fetch)
Original file line number Diff line number Diff line change 1+ import pytest
2+
13from async_tiff import TIFF , enums
2- from async_tiff .store import S3Store
4+ from async_tiff .store import LocalStore , S3Store
35
46
57async def test_cog_s3 ():
@@ -23,3 +25,12 @@ async def test_cog_s3():
2325 gkd = ifd .geo_key_directory
2426 assert gkd .citation == "WGS 84 / UTM zone 12N"
2527 assert gkd .projected_type == 32612
28+
29+
30+ async def test_cog_missing_file ():
31+ """
32+ Ensure that a FileNotFoundError is raised when passing in a missing file.
33+ """
34+ store = LocalStore ()
35+ with pytest .raises (FileNotFoundError ):
36+ await TIFF .open (path = "imaginary_file.tif" , store = store )
You can’t perform that action at this time.
0 commit comments