def test_transformer_group__download_grids__directory( get_user_data_dir_mock, download_mock, tmp_path, capsys, ): with proj_network_env(): if pyproj._datadir._USE_GLOBAL_CONTEXT: pyproj.set_global_context_network(active=False) trans_group = TransformerGroup(4326, 2964, network=False) trans_group.download_grids(directory=tmp_path) get_user_data_dir_mock.assert_not_called() captured = capsys.readouterr() assert captured.out == "" if grids_available( "us_noaa_alaska.tif", "ca_nrc_ntv2_0.tif", check_network=False, check_all=True, ): download_mock.assert_not_called() elif grids_available("us_noaa_alaska.tif", check_network=False): download_mock.assert_called_with( file_url="https://cdn.proj.org/ca_nrc_ntv2_0.tif", short_name="ca_nrc_ntv2_0.tif", directory=tmp_path, verbose=False, ) elif grids_available("ca_nrc_ntv2_0.tif", check_network=False): download_mock.assert_called_with( file_url="https://cdn.proj.org/us_noaa_alaska.tif", short_name="us_noaa_alaska.tif", directory=tmp_path, verbose=False, ) else: download_mock.assert_has_calls( [ call( file_url="https://cdn.proj.org/us_noaa_alaska.tif", short_name="us_noaa_alaska.tif", directory=tmp_path, verbose=False, ), call( file_url="https://cdn.proj.org/ca_nrc_ntv2_0.tif", short_name="ca_nrc_ntv2_0.tif", directory=tmp_path, verbose=False, ), ], any_order=True, )
def test_transformer_group__download_grids(get_user_data_dir_mock, tmp_path, capsys): get_user_data_dir_mock.return_value = str(tmp_path) with proj_network_env(): if pyproj._datadir._USE_GLOBAL_CONTEXT: pyproj.network.set_network_enabled(active=False) trans_group = TransformerGroup(4326, 2964, network=False) trans_group.download_grids(verbose=True) captured = capsys.readouterr() get_user_data_dir_mock.assert_called_with(True) paths = sorted(Path(path).name for path in glob(str(tmp_path.joinpath("*")))) if grids_available( "us_noaa_alaska.tif", "ca_nrc_ntv2_0.tif", check_network=False, check_all=True, ): assert paths == [] assert captured.out == "" elif grids_available("us_noaa_alaska.tif", check_network=False): assert paths == ["ca_nrc_ntv2_0.tif"] assert ( captured.out == "Downloading: https://cdn.proj.org/ca_nrc_ntv2_0.tif\n" ) elif grids_available("ca_nrc_ntv2_0.tif", check_network=False): assert paths == ["us_noaa_alaska.tif"] assert captured.out == ( "Downloading: https://cdn.proj.org/us_noaa_alaska.tif\n" ) else: assert paths == ["ca_nrc_ntv2_0.tif", "us_noaa_alaska.tif"] assert captured.out == ( "Downloading: https://cdn.proj.org/us_noaa_alaska.tif\n" "Downloading: https://cdn.proj.org/ca_nrc_ntv2_0.tif\n" ) # make sure not downloaded again with proj_env(), patch( "pyproj.transformer._download_resource_file" ) as download_mock: append_data_dir(str(tmp_path)) trans_group = TransformerGroup(4326, 2964, network=False) trans_group.download_grids() get_user_data_dir_mock.assert_called_with(True) download_mock.assert_not_called()