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;
3
3
use async_tiff:: metadata:: { PrefetchBuffer , TiffMetadataReader } ;
4
4
use async_tiff:: reader:: AsyncFileReader ;
5
5
use async_tiff:: TIFF ;
6
- use pyo3:: exceptions:: PyIndexError ;
6
+ use pyo3:: exceptions:: { PyFileNotFoundError , PyIndexError } ;
7
7
use pyo3:: prelude:: * ;
8
8
use pyo3:: types:: PyType ;
9
9
use pyo3_async_runtimes:: tokio:: future_into_py;
@@ -32,7 +32,9 @@ impl PyTIFF {
32
32
let reader = store. into_async_file_reader ( path) ;
33
33
34
34
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 ( ) ) ) ?;
36
38
let mut metadata_reader = TiffMetadataReader :: try_open ( & metadata_fetch) . await . unwrap ( ) ;
37
39
let ifds = metadata_reader
38
40
. read_all_ifds ( & metadata_fetch)
Original file line number Diff line number Diff line change
1
+ import pytest
2
+
1
3
from async_tiff import TIFF , enums
2
- from async_tiff .store import S3Store
4
+ from async_tiff .store import LocalStore , S3Store
3
5
4
6
5
7
async def test_cog_s3 ():
@@ -23,3 +25,12 @@ async def test_cog_s3():
23
25
gkd = ifd .geo_key_directory
24
26
assert gkd .citation == "WGS 84 / UTM zone 12N"
25
27
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