1"""Tests for `$ fio cat`.""" 2 3 4import os 5import pytest 6from click.testing import CliRunner 7 8from fiona.fio.main import main_group 9from fiona.fio import cat 10 11 12def test_one(path_coutwildrnp_shp): 13 runner = CliRunner() 14 result = runner.invoke(main_group, ['cat', path_coutwildrnp_shp]) 15 assert result.exit_code == 0 16 assert result.output.count('"Feature"') == 67 17 18 19def test_two(path_coutwildrnp_shp): 20 runner = CliRunner() 21 result = runner.invoke(main_group, ['cat', path_coutwildrnp_shp, path_coutwildrnp_shp]) 22 assert result.exit_code == 0 23 assert result.output.count('"Feature"') == 134 24 25 26def test_bbox_no(path_coutwildrnp_shp): 27 runner = CliRunner() 28 result = runner.invoke( 29 main_group, 30 ['cat', path_coutwildrnp_shp, '--bbox', '0,10,80,20'], 31 catch_exceptions=False) 32 assert result.exit_code == 0 33 assert result.output == "" 34 35 36def test_bbox_yes(path_coutwildrnp_shp): 37 runner = CliRunner() 38 result = runner.invoke( 39 main_group, 40 ['cat', path_coutwildrnp_shp, '--bbox', '-109,37,-107,39'], 41 catch_exceptions=False) 42 assert result.exit_code == 0 43 assert result.output.count('"Feature"') == 19 44 45 46def test_bbox_yes_two_files(path_coutwildrnp_shp): 47 runner = CliRunner() 48 result = runner.invoke( 49 main_group, 50 ['cat', path_coutwildrnp_shp, path_coutwildrnp_shp, '--bbox', '-109,37,-107,39'], 51 catch_exceptions=False) 52 assert result.exit_code == 0 53 assert result.output.count('"Feature"') == 38 54 55 56def test_bbox_json_yes(path_coutwildrnp_shp): 57 runner = CliRunner() 58 result = runner.invoke( 59 main_group, 60 ['cat', path_coutwildrnp_shp, '--bbox', '[-109,37,-107,39]'], 61 catch_exceptions=False) 62 assert result.exit_code == 0 63 assert result.output.count('"Feature"') == 19 64 65 66def test_multi_layer(data_dir): 67 layerdef = "1:coutwildrnp,1:coutwildrnp" 68 runner = CliRunner() 69 result = runner.invoke( 70 main_group, ['cat', '--layer', layerdef, data_dir]) 71 assert result.output.count('"Feature"') == 134 72 73 74def test_multi_layer_fail(data_dir): 75 runner = CliRunner() 76 result = runner.invoke(main_group, ['cat', '--layer', '200000:coutlildrnp', 77 data_dir]) 78 assert result.exit_code != 0 79 80 81def test_vfs(path_coutwildrnp_zip): 82 runner = CliRunner() 83 result = runner.invoke(main_group, [ 84 'cat', 'zip://{}'.format(path_coutwildrnp_zip)]) 85 assert result.exit_code == 0 86 assert result.output.count('"Feature"') == 67 87 88 89def test_dst_crs_epsg3857(path_coutwildrnp_shp): 90 """Confirm fix of issue #952""" 91 runner = CliRunner() 92 result = runner.invoke( 93 main_group, ["cat", "--dst-crs", "EPSG:3857", path_coutwildrnp_shp] 94 ) 95 assert result.exit_code == 0 96 assert result.output.count('"Feature"') == 67 97