(monkeypatch, pickle_with_and_without_subtree_filesystem)
| 1341 | |
| 1342 | @pytest.mark.s3 |
| 1343 | def test_s3_proxy_options(monkeypatch, pickle_with_and_without_subtree_filesystem): |
| 1344 | pickle_module = pickle_with_and_without_subtree_filesystem |
| 1345 | from pyarrow.fs import S3FileSystem |
| 1346 | |
| 1347 | # The following two are equivalent: |
| 1348 | proxy_opts_1_dict = {'scheme': 'http', 'host': 'localhost', 'port': 8999} |
| 1349 | proxy_opts_1_str = 'http://localhost:8999' |
| 1350 | # The following two are equivalent: |
| 1351 | proxy_opts_2_dict = {'scheme': 'https', 'host': 'localhost', 'port': 8080} |
| 1352 | proxy_opts_2_str = 'https://localhost:8080' |
| 1353 | |
| 1354 | # Check dict case for 'proxy_options' |
| 1355 | fs = S3FileSystem(proxy_options=proxy_opts_1_dict) |
| 1356 | assert isinstance(fs, S3FileSystem) |
| 1357 | assert pickle_module.loads(pickle_module.dumps(fs)) == fs |
| 1358 | |
| 1359 | fs = S3FileSystem(proxy_options=proxy_opts_2_dict) |
| 1360 | assert isinstance(fs, S3FileSystem) |
| 1361 | assert pickle_module.loads(pickle_module.dumps(fs)) == fs |
| 1362 | |
| 1363 | # Check str case for 'proxy_options' |
| 1364 | fs = S3FileSystem(proxy_options=proxy_opts_1_str) |
| 1365 | assert isinstance(fs, S3FileSystem) |
| 1366 | assert pickle_module.loads(pickle_module.dumps(fs)) == fs |
| 1367 | |
| 1368 | fs = S3FileSystem(proxy_options=proxy_opts_2_str) |
| 1369 | assert isinstance(fs, S3FileSystem) |
| 1370 | assert pickle_module.loads(pickle_module.dumps(fs)) == fs |
| 1371 | |
| 1372 | # Check that two FSs using the same proxy_options dict are equal |
| 1373 | fs1 = S3FileSystem(proxy_options=proxy_opts_1_dict) |
| 1374 | fs2 = S3FileSystem(proxy_options=proxy_opts_1_dict) |
| 1375 | assert fs1 == fs2 |
| 1376 | assert pickle_module.loads(pickle_module.dumps(fs1)) == fs2 |
| 1377 | assert pickle_module.loads(pickle_module.dumps(fs2)) == fs1 |
| 1378 | |
| 1379 | fs1 = S3FileSystem(proxy_options=proxy_opts_2_dict) |
| 1380 | fs2 = S3FileSystem(proxy_options=proxy_opts_2_dict) |
| 1381 | assert fs1 == fs2 |
| 1382 | assert pickle_module.loads(pickle_module.dumps(fs1)) == fs2 |
| 1383 | assert pickle_module.loads(pickle_module.dumps(fs2)) == fs1 |
| 1384 | |
| 1385 | # Check that two FSs using the same proxy_options str are equal |
| 1386 | fs1 = S3FileSystem(proxy_options=proxy_opts_1_str) |
| 1387 | fs2 = S3FileSystem(proxy_options=proxy_opts_1_str) |
| 1388 | assert fs1 == fs2 |
| 1389 | assert pickle_module.loads(pickle_module.dumps(fs1)) == fs2 |
| 1390 | assert pickle_module.loads(pickle_module.dumps(fs2)) == fs1 |
| 1391 | |
| 1392 | fs1 = S3FileSystem(proxy_options=proxy_opts_2_str) |
| 1393 | fs2 = S3FileSystem(proxy_options=proxy_opts_2_str) |
| 1394 | assert fs1 == fs2 |
| 1395 | assert pickle_module.loads(pickle_module.dumps(fs1)) == fs2 |
| 1396 | assert pickle_module.loads(pickle_module.dumps(fs2)) == fs1 |
| 1397 | |
| 1398 | # Check that two FSs using equivalent proxy_options |
| 1399 | # (one dict, one str) are equal |
| 1400 | fs1 = S3FileSystem(proxy_options=proxy_opts_1_dict) |
nothing calls this directly
no test coverage detected