|
3 | 3 | import bz2 |
4 | 4 |
|
5 | 5 | import pytest |
| 6 | +import requests |
6 | 7 | from click.testing import CliRunner |
7 | 8 |
|
8 | 9 | from databusclient.api.download import download as api_download |
@@ -196,6 +197,46 @@ def fake_download(**kwargs): |
196 | 197 | assert manifest["dbus:replayParams"]["graph_mode"] == "download-url" |
197 | 198 |
|
198 | 199 |
|
| 200 | +def test_cli_reports_redirected_download_timeout_without_traceback(monkeypatch): |
| 201 | + request = requests.Request( |
| 202 | + "HEAD", "https://data.dbpedia.org/repo/example/data.ttl" |
| 203 | + ).prepare() |
| 204 | + |
| 205 | + def timeout(**_kwargs): |
| 206 | + raise requests.exceptions.ConnectTimeout(request=request) |
| 207 | + |
| 208 | + monkeypatch.setattr("databusclient.cli.api_download", timeout) |
| 209 | + |
| 210 | + result = CliRunner().invoke( |
| 211 | + app, ["download", "https://databus.dbpedia.org/example/data.ttl"] |
| 212 | + ) |
| 213 | + |
| 214 | + assert result.exit_code == 1 |
| 215 | + assert ( |
| 216 | + "Error: Could not connect to data.dbpedia.org: " |
| 217 | + "the request timed out." |
| 218 | + ) in result.output |
| 219 | + assert "Traceback" not in result.output |
| 220 | + |
| 221 | + |
| 222 | +def test_cli_reports_connection_failure_without_traceback(monkeypatch): |
| 223 | + request = requests.Request("GET", "https://files.example.org/data.ttl").prepare() |
| 224 | + |
| 225 | + def connection_error(**_kwargs): |
| 226 | + raise requests.exceptions.ConnectionError(request=request) |
| 227 | + |
| 228 | + monkeypatch.setattr("databusclient.cli.api_download", connection_error) |
| 229 | + |
| 230 | + result = CliRunner().invoke( |
| 231 | + app, ["download", "https://databus.dbpedia.org/example/data.ttl"] |
| 232 | + ) |
| 233 | + |
| 234 | + assert result.exit_code == 1 |
| 235 | + assert "Error: Could not connect to files.example.org." in result.output |
| 236 | + assert "Check the server address and your network connection." in result.output |
| 237 | + assert "Traceback" not in result.output |
| 238 | + |
| 239 | + |
199 | 240 | def test_converted_output_gets_graph_sidecar_at_final_path(monkeypatch, tmp_path): |
200 | 241 | import databusclient.api.download as dl |
201 | 242 |
|
|
0 commit comments