mirror of
https://github.com/rasterio/rasterio.git
synced 2025-12-08 17:36:12 +00:00
183 lines
5.1 KiB
Python
183 lines
5.1 KiB
Python
import click
|
|
from click.testing import CliRunner
|
|
|
|
|
|
import rasterio
|
|
from rasterio.rio import cli, rio
|
|
|
|
|
|
def test_version():
|
|
runner = CliRunner()
|
|
result = runner.invoke(cli.cli, ['--version'])
|
|
assert result.exit_code == 0
|
|
assert rasterio.__version__ in result.output
|
|
|
|
|
|
def test_insp():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.insp,
|
|
['tests/data/RGB.byte.tif'])
|
|
assert result.exit_code == 0
|
|
|
|
|
|
def test_insp_err():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.insp,
|
|
['tests'])
|
|
assert result.exit_code == 1
|
|
|
|
|
|
def test_bounds_defaults():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif'])
|
|
assert result.exit_code == 0
|
|
assert 'FeatureCollection' in result.output
|
|
|
|
|
|
def test_bounds_err():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests'])
|
|
assert result.exit_code == 1
|
|
|
|
|
|
def test_bounds_feature():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', '--feature'])
|
|
assert result.exit_code == 0
|
|
assert result.output.count('Polygon') == 1
|
|
|
|
|
|
def test_bounds_obj_bbox():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', '--bbox', '--precision', '2'])
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[-78.9, 23.56, -76.6, 25.55]'
|
|
|
|
|
|
def test_bounds_compact():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', '--bbox', '--precision', '2', '--compact'])
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[-78.9,23.56,-76.6,25.55]'
|
|
|
|
|
|
def test_bounds_indent():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', '--bbox', '--indent', '2', '--precision', '2'])
|
|
assert result.exit_code == 0
|
|
assert len(result.output.split('\n')) == 7
|
|
|
|
|
|
def test_bounds_obj_bbox_mercator():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', '--bbox', '--mercator', '--precision', '3'])
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[-8782900.033, 2700489.278, -8527010.472, 2943560.235]'
|
|
|
|
|
|
def test_bounds_obj_bbox_projected():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', '--bbox', '--projected', '--precision', '3'])
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[101985.0, 2611485.0, 339315.0, 2826915.0]'
|
|
|
|
|
|
def test_bounds_seq():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', 'tests/data/RGB.byte.tif', '--sequence'])
|
|
assert result.exit_code == 0
|
|
assert result.output.count('Polygon') == 2
|
|
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', 'tests/data/RGB.byte.tif', '--sequence', '--bbox', '--precision', '2'])
|
|
assert result.exit_code == 0
|
|
assert result.output == '[-78.9, 23.56, -76.6, 25.55]\n[-78.9, 23.56, -76.6, 25.55]\n'
|
|
assert '\x1e' not in result.output
|
|
|
|
|
|
def test_bounds_seq_rs():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.bounds,
|
|
['tests/data/RGB.byte.tif', 'tests/data/RGB.byte.tif', '--sequence', '--rs', '--bbox', '--precision', '2'])
|
|
assert result.exit_code == 0
|
|
assert result.output == '\x1e[-78.9, 23.56, -76.6, 25.55]\n\x1e[-78.9, 23.56, -76.6, 25.55]\n'
|
|
|
|
|
|
def test_transform_err():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.transform,
|
|
[], "[-78.0]")
|
|
assert result.exit_code == 1
|
|
|
|
|
|
def test_transform_point():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.transform,
|
|
['--dst_crs', 'EPSG:32618', '--precision', '2'],
|
|
"[-78.0, 23.0]", catch_exceptions=False)
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[192457.13, 2546667.68]'
|
|
|
|
|
|
def test_transform_point_dst_file():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.transform,
|
|
['--dst_crs', 'tests/data/RGB.byte.tif', '--precision', '2'],
|
|
"[-78.0, 23.0]")
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[192457.13, 2546667.68]'
|
|
|
|
|
|
def test_transform_point_src_file():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.transform,
|
|
['--src_crs', 'tests/data/RGB.byte.tif', '--precision', '2'],
|
|
"[192457.13, 2546667.68]")
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[-78.0, 23.0]'
|
|
|
|
|
|
def test_transform_point_2():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.transform,
|
|
['[-78.0, 23.0]', '--dst_crs', 'EPSG:32618', '--precision', '2'])
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[192457.13, 2546667.68]'
|
|
|
|
|
|
def test_transform_point_multi():
|
|
runner = CliRunner()
|
|
result = runner.invoke(
|
|
rio.transform,
|
|
['--dst_crs', 'EPSG:32618', '--precision', '2'],
|
|
"[-78.0, 23.0]\n[-78.0, 23.0]", catch_exceptions=False)
|
|
assert result.exit_code == 0
|
|
assert result.output.strip() == '[192457.13, 2546667.68]\n[192457.13, 2546667.68]'
|