rasterio/tests/test_open.py
Ryan Grout 1c548ba371
Accept PathLike objects in rasterio.open (#2231)
* Permit PathLike objects in open.

* Import Path from pathlib

* Test PathLike inputs to open.

* Allow PathLike in merge.

* Accept PathLike objects.
2021-07-27 11:06:36 -06:00

38 lines
908 B
Python

import pytest
import rasterio
from pathlib import Path
def test_open_bad_path():
with pytest.raises(TypeError):
rasterio.open(3.14)
def test_open_bad_mode_1():
with pytest.raises(TypeError):
rasterio.open("tests/data/RGB.byte.tif", mode=3.14)
def test_open_bad_mode_2():
with pytest.raises(ValueError):
rasterio.open("tests/data/RGB.byte.tif", mode="foo")
def test_open_bad_driver():
with pytest.raises(TypeError):
rasterio.open("tests/data/RGB.byte.tif", mode="r", driver=3.14)
def test_open_pathlib_path():
tif = Path.cwd() / 'tests' / 'data' / 'RGB.byte.tif'
with rasterio.open(tif) as src:
assert src.count == 3
def test_open_pathlike():
class MyPath:
def __fspath__(self):
return str(Path.cwd() / 'tests' / 'data' / 'RGB.byte.tif')
with rasterio.open(MyPath()) as src:
assert src.count == 3