def replaceGlobs(self, globs_):
     globs = globs_.copy()
     if self._isStale:
         self._refresh()
     if 'os' in globs:
         globs['os'] = fake_filesystem.FakeOsModule(self.fs)
     if 'path' in globs:
         fake_os = globs['os'] if 'os' in globs \
             else fake_filesystem.FakeOsModule(self.fs)
         globs['path'] = fake_os.path
     if 'shutil' in globs:
         globs['shutil'] = fake_filesystem_shutil.FakeShutilModule(self.fs)
     if 'tempfile' in globs:
         globs['tempfile'] = fake_tempfile.FakeTempfileModule(self.fs)
     if 'io' in globs:
         globs['io'] = fake_filesystem.FakeIoModule(self.fs)
     return globs
    def _refresh(self):
        """Renew the fake file system and set the _isStale flag to `False`."""
        if self._stubs is not None:
            self._stubs.SmartUnsetAll()
        self._stubs = mox3.stubout.StubOutForTesting()

        self.fs = fake_filesystem.FakeFilesystem()
        self.fake_os = fake_filesystem.FakeOsModule(self.fs)
        self.fake_path = self.fake_os.path
        if self.HAS_PATHLIB:
            self.fake_pathlib = fake_pathlib.FakePathlibModule(self.fs)
        self.fake_shutil = fake_filesystem_shutil.FakeShutilModule(self.fs)
        self.fake_tempfile_ = fake_tempfile.FakeTempfileModule(self.fs)
        self.fake_open = fake_filesystem.FakeFileOpen(self.fs)
        self.fake_io = fake_filesystem.FakeIoModule(self.fs)

        self._isStale = False