@@ -17,43 +17,51 @@ def test_is_gcs_url():
17
17
18
18
19
19
@td .skip_if_no ('gcsfs' )
20
- def test_read_csv_gcs (mock ):
20
+ def test_read_csv_gcs (monkeypatch ):
21
21
df1 = DataFrame ({'int' : [1 , 3 ], 'float' : [2.0 , np .nan ], 'str' : ['t' , 's' ],
22
22
'dt' : date_range ('2018-06-18' , periods = 2 )})
23
- with mock .patch ('gcsfs.GCSFileSystem' ) as MockFileSystem :
24
- instance = MockFileSystem .return_value
25
- instance .open .return_value = StringIO (df1 .to_csv (index = False ))
26
- df2 = read_csv ('gs://test/test.csv' , parse_dates = ['dt' ])
23
+
24
+ class MockGCSFileSystem ():
25
+ def open (* args ):
26
+ return StringIO (df1 .to_csv (index = False ))
27
+
28
+ monkeypatch .setattr ('gcsfs.GCSFileSystem' , MockGCSFileSystem )
29
+ df2 = read_csv ('gs://test/test.csv' , parse_dates = ['dt' ])
27
30
28
31
assert_frame_equal (df1 , df2 )
29
32
30
33
31
34
@td .skip_if_no ('gcsfs' )
32
- def test_to_csv_gcs (mock ):
35
+ def test_to_csv_gcs (monkeypatch ):
33
36
df1 = DataFrame ({'int' : [1 , 3 ], 'float' : [2.0 , np .nan ], 'str' : ['t' , 's' ],
34
37
'dt' : date_range ('2018-06-18' , periods = 2 )})
35
- with mock .patch ('gcsfs.GCSFileSystem' ) as MockFileSystem :
36
- s = StringIO ()
37
- instance = MockFileSystem .return_value
38
- instance .open .return_value = s
38
+ s = StringIO ()
39
+
40
+ class MockGCSFileSystem ():
41
+ def open (* args ):
42
+ return s
39
43
40
- df1 .to_csv ('gs://test/test.csv' , index = True )
41
- df2 = read_csv (StringIO (s .getvalue ()), parse_dates = ['dt' ], index_col = 0 )
44
+ monkeypatch .setattr ('gcsfs.GCSFileSystem' , MockGCSFileSystem )
45
+ df1 .to_csv ('gs://test/test.csv' , index = True )
46
+ df2 = read_csv (StringIO (s .getvalue ()), parse_dates = ['dt' ], index_col = 0 )
42
47
43
48
assert_frame_equal (df1 , df2 )
44
49
45
50
46
51
@td .skip_if_no ('gcsfs' )
47
- def test_gcs_get_filepath_or_buffer (mock ):
52
+ def test_gcs_get_filepath_or_buffer (monkeypatch ):
48
53
df1 = DataFrame ({'int' : [1 , 3 ], 'float' : [2.0 , np .nan ], 'str' : ['t' , 's' ],
49
54
'dt' : date_range ('2018-06-18' , periods = 2 )})
50
- with mock .patch ('pandas.io.gcs.get_filepath_or_buffer' ) as MockGetFilepath :
51
- MockGetFilepath .return_value = (StringIO (df1 .to_csv (index = False )),
52
- None , None , False )
53
- df2 = read_csv ('gs://test/test.csv' , parse_dates = ['dt' ])
55
+
56
+ def mock_get_filepath_or_buffer (* args , ** kwargs ):
57
+ return (StringIO (df1 .to_csv (index = False )),
58
+ None , None , False )
59
+
60
+ monkeypatch .setattr ('pandas.io.gcs.get_filepath_or_buffer' ,
61
+ mock_get_filepath_or_buffer )
62
+ df2 = read_csv ('gs://test/test.csv' , parse_dates = ['dt' ])
54
63
55
64
assert_frame_equal (df1 , df2 )
56
- assert MockGetFilepath .called
57
65
58
66
59
67
@pytest .mark .skipif (td .safe_import ('gcsfs' ),
0 commit comments