Skip to content

Commit 69885fe

Browse files
committed
Add test for Parquet GCS write
1 parent 8974b50 commit 69885fe

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

pandas/tests/io/test_gcs.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import os
12
from io import StringIO
23

34
import numpy as np
@@ -60,6 +61,30 @@ def open(*args):
6061
assert_frame_equal(df1, df2)
6162

6263

64+
@td.skip_if_no("fastparquet")
65+
@td.skip_if_no("gcsfs")
66+
def test_to_parquet_gcs_new_file(monkeypatch, tmpdir):
67+
"""Regression test for writing to a not-yet-existent GCS Parquet file."""
68+
df1 = DataFrame(
69+
{
70+
"int": [1, 3],
71+
"float": [2.0, np.nan],
72+
"str": ["t", "s"],
73+
"dt": date_range("2018-06-18", periods=2),
74+
}
75+
)
76+
77+
class MockGCSFileSystem:
78+
def open(self, path, mode='r', *args):
79+
if 'w' not in mode:
80+
raise FileNotFoundError
81+
return open(os.path.join(tmpdir, 'test.parquet'), mode)
82+
83+
monkeypatch.setattr("gcsfs.GCSFileSystem", MockGCSFileSystem)
84+
df1.to_parquet("gs://test/test.csv", index=True, engine='fastparquet',
85+
compression=None)
86+
87+
6388
@td.skip_if_no("gcsfs")
6489
def test_gcs_get_filepath_or_buffer(monkeypatch):
6590
df1 = DataFrame(

0 commit comments

Comments
 (0)