@@ -115,7 +115,7 @@ class Patcher(object):
115
115
116
116
# To add py.test support per issue https://github.com/jmcgeheeiv/pyfakefs/issues/43,
117
117
# it appears that adding 'py', 'pytest', '_pytest' to SKIPNAMES will help
118
- SKIPNAMES = set (['os' , 'glob' , 'path' , 'shutil' , 'tempfile' ])
118
+ SKIPNAMES = set (['os' , 'glob' , 'path' , 'shutil' , 'tempfile' , 'io' ])
119
119
120
120
def __init__ (self ):
121
121
# Attributes set by _findModules()
@@ -124,6 +124,7 @@ def __init__(self):
124
124
self ._pathModules = None
125
125
self ._shutilModules = None
126
126
self ._tempfileModules = None
127
+ self ._ioModules = None
127
128
self ._findModules ()
128
129
assert None not in vars (self ).values (), \
129
130
"_findModules() missed the initialization of an instance variable"
@@ -137,6 +138,7 @@ def __init__(self):
137
138
self .fake_shutil = None
138
139
self .fake_tempfile_ = None
139
140
self .fake_open = None
141
+ self .fake_io = None
140
142
# _isStale is set by tearDown(), reset by _refresh()
141
143
self ._isStale = True
142
144
self ._refresh ()
@@ -154,6 +156,7 @@ def _findModules(self):
154
156
self ._pathModules = set ()
155
157
self ._shutilModules = set ()
156
158
self ._tempfileModules = set ()
159
+ self ._ioModules = set ()
157
160
for name , module in set (sys .modules .items ()):
158
161
if (module in self .SKIPMODULES or
159
162
(not inspect .ismodule (module )) or
@@ -169,6 +172,8 @@ def _findModules(self):
169
172
self ._shutilModules .add (module )
170
173
if 'tempfile' in module .__dict__ :
171
174
self ._tempfileModules .add (module )
175
+ if 'io' in module .__dict__ :
176
+ self ._ioModules .add (module )
172
177
173
178
def _refresh (self ):
174
179
'''Renew the fake file system and set the _isStale flag to `False`.'''
@@ -183,6 +188,7 @@ def _refresh(self):
183
188
self .fake_shutil = fake_filesystem_shutil .FakeShutilModule (self .fs )
184
189
self .fake_tempfile_ = fake_tempfile .FakeTempfileModule (self .fs )
185
190
self .fake_open = fake_filesystem .FakeFileOpen (self .fs )
191
+ self .fake_io = fake_filesystem .FakeIoModule (self .fs )
186
192
187
193
self ._isStale = False
188
194
@@ -211,6 +217,8 @@ def setUp(self, doctester=None):
211
217
self ._stubs .SmartSet (module , 'shutil' , self .fake_shutil )
212
218
for module in self ._tempfileModules :
213
219
self ._stubs .SmartSet (module , 'tempfile' , self .fake_tempfile_ )
220
+ for module in self ._ioModules :
221
+ self ._stubs .SmartSet (module , 'io' , self .fake_io )
214
222
215
223
def replaceGlobs (self , globs_ ):
216
224
globs = globs_ .copy ()
@@ -228,6 +236,8 @@ def replaceGlobs(self, globs_):
228
236
globs ['shutil' ] = fake_filesystem_shutil .FakeShutilModule (self .fs )
229
237
if 'tempfile' in globs :
230
238
globs ['tempfile' ] = fake_tempfile .FakeTempfileModule (self .fs )
239
+ if 'io' in globs :
240
+ globs ['io' ] = fake_filesystem .FakeIoModule (self .fs )
231
241
return globs
232
242
233
243
def tearDown (self , doctester = None ):
0 commit comments