Skip to content

Commit 91a7956

Browse files
committed
improve test
1 parent db1c7ed commit 91a7956

File tree

3 files changed

+16
-22
lines changed

3 files changed

+16
-22
lines changed

pandas/io/common.py

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,11 +1378,6 @@ def iterdir(
13781378
yield resolved_path
13791379
return
13801380

1381-
if not resolved_path.is_dir():
1382-
raise NotADirectoryError(
1383-
f"Path {path!r} is neither a file nor a directory."
1384-
)
1385-
13861381
for entry in resolved_path.iterdir():
13871382
if entry.is_file():
13881383
if _match_file(
@@ -1393,7 +1388,7 @@ def iterdir(
13931388
yield entry
13941389
return
13951390

1396-
# Remote paths (e.g., s3)
1391+
# Remote paths
13971392
fsspec = import_optional_dependency("fsspec", extra=scheme)
13981393
fs = fsspec.filesystem(scheme)
13991394
path_without_scheme = fsspec.core.strip_protocol(path_str)
@@ -1405,13 +1400,10 @@ def iterdir(
14051400
):
14061401
yield PurePosixPath(path_without_scheme)
14071402
return
1408-
if not fs.isdir(path_without_scheme):
1409-
raise NotADirectoryError(f"Path {path!r} is neither a file nor a directory.")
14101403

1411-
files = fs.ls(path_without_scheme, detail=True)
1412-
for f in files:
1413-
if f["type"] == "file":
1414-
path_obj = PurePosixPath(f["name"])
1404+
for file in fs.ls(path_without_scheme, detail=True):
1405+
if fs.isfile(file):
1406+
path_obj = PurePosixPath(file["name"])
14151407
if _match_file(
14161408
path_obj,
14171409
extensions,

pandas/tests/io/conftest.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,18 +226,18 @@ def compression_ext(request):
226226

227227

228228
@pytest.fixture
229-
def directory_with_dummy_csv(tmp_path):
229+
def local_csv_directory(tmp_path):
230230
"""
231231
Fixture to create a directory with dummy CSV files for testing.
232232
"""
233233
for i in range(3):
234-
file_path = tmp_path / f"file_{i}.csv"
234+
file_path = tmp_path / f"{i}.csv"
235235
file_path.touch()
236236
return tmp_path
237237

238238

239239
@pytest.fixture
240-
def mock_remote_csv_directory(monkeypatch):
240+
def remote_csv_directory(monkeypatch):
241241
_ = pytest.importorskip("fsspec", reason="fsspec is required for remote tests")
242242

243243
from fsspec.implementations.memory import MemoryFileSystem

pandas/tests/io/test_common.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -697,14 +697,13 @@ def test_pyarrow_read_csv_datetime_dtype():
697697
tm.assert_frame_equal(expect, result)
698698

699699

700-
def test_iterdir_local(directory_with_dummy_csv):
701-
for file in icom.iterdir(directory_with_dummy_csv):
700+
def test_iterdir_local(local_csv_directory):
701+
for file in icom.iterdir(local_csv_directory):
702702
assert file.is_file()
703-
assert file.name.startswith("file_")
704703
assert file.suffix == ".csv"
705704

706705

707-
def test_mock_remote_csv_directory_contents(mock_remote_csv_directory):
706+
def test_remote_csv_directory(remote_csv_directory):
708707
import fsspec
709708
from fsspec.implementations.memory import MemoryFileSystem
710709

@@ -726,10 +725,13 @@ def test_mock_remote_csv_directory_contents(mock_remote_csv_directory):
726725
assert nested_files[0]["name"] == "/remote-bucket/nested/ignored.csv"
727726

728727

729-
def test_iterdir_remote(mock_remote_csv_directory):
728+
def test_iterdir_remote(remote_csv_directory):
730729
import fsspec
731730

732731
fs = fsspec.filesystem("s3")
733-
for file in icom.iterdir(mock_remote_csv_directory):
734-
assert fs.isfile(file)
732+
for file in icom.iterdir(remote_csv_directory):
733+
assert fs.exists(file)
735734
assert file.suffix == ".csv"
735+
736+
# for fsspec<2024.5.0, fs.isfle(PurePosixPath) returns False
737+
assert fs.isfile(str(file))

0 commit comments

Comments
 (0)