Index: tools/telemetry/third_party/pyfakefs/pyfakefs/fake_filesystem_unittest.py |
diff --git a/tools/telemetry/third_party/pyfakefs/pyfakefs/fake_filesystem_unittest.py b/tools/telemetry/third_party/pyfakefs/pyfakefs/fake_filesystem_unittest.py |
deleted file mode 100644 |
index 692fb2f23cc0aea76925399db2b65657de0b18b6..0000000000000000000000000000000000000000 |
--- a/tools/telemetry/third_party/pyfakefs/pyfakefs/fake_filesystem_unittest.py |
+++ /dev/null |
@@ -1,226 +0,0 @@ |
-# Copyright 2014 Altera Corporation. All Rights Reserved. |
-# Copyright 2015 John McGehee |
-# |
-# Licensed under the Apache License, Version 2.0 (the "License"); |
-# you may not use this file except in compliance with the License. |
-# You may obtain a copy of the License at |
-# |
-# http://www.apache.org/licenses/LICENSE-2.0 |
-# |
-# Unless required by applicable law or agreed to in writing, software |
-# distributed under the License is distributed on an "AS IS" BASIS, |
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-# See the License for the specific language governing permissions and |
-# limitations under the License. |
- |
-"""A base class for unit tests using the :py:class:`pyfakefs` module. |
- |
-This class searches `sys.modules` for modules that import the `os`, `glob`, |
-`shutil`, and `tempfile` modules. |
- |
-The `setUp()` method binds these modules to the corresponding fake |
-modules from `pyfakefs`. Further, the built in functions `file()` and |
-`open()` are bound to fake functions. |
- |
-The `tearDownPyfakefs()` method returns the module bindings to their original |
-state. |
- |
-It is expected that `setUp()` be invoked at the beginning of the derived |
-class' `setUp()` method, and `tearDownPyfakefs()` be invoked at the end of the |
-derived class' `tearDown()` method. |
- |
-During the test, everything uses the fake file system and modules. This means |
-that even in your test, you can use familiar functions like `open()` and |
-`os.makedirs()` to manipulate the fake file system. |
- |
-This also means existing unit tests that use the real file system can be |
-retrofitted to use `pyfakefs` by simply changing their base class from |
-`:py:class`unittest.TestCase` to |
-`:py:class`pyfakefs.fake_filesystem_unittest.TestCase`. |
-""" |
- |
-import sys |
-import unittest |
-import doctest |
-import fake_filesystem |
-import fake_filesystem_glob |
-import fake_filesystem_shutil |
-import fake_tempfile |
-if sys.version_info < (3,): |
- import __builtin__ as builtins |
-else: |
- import builtins |
- |
-import mox3.stubout |
- |
-def load_doctests(loader, tests, ignore, module): |
- '''Load the doctest tests for the specified module into unittest.''' |
- _patcher = Patcher() |
- globs = _patcher.replaceGlobs(vars(module)) |
- tests.addTests(doctest.DocTestSuite(module, |
- globs=globs, |
- setUp=_patcher.setUp, |
- tearDown=_patcher.tearDown)) |
- return tests |
- |
- |
-class TestCase(unittest.TestCase): |
- def __init__(self, methodName='runTest'): |
- super(TestCase, self).__init__(methodName) |
- self._stubber = Patcher() |
- |
- @property |
- def fs(self): |
- return self._stubber.fs |
- |
- @property |
- def patches(self): |
- return self._stubber.patches |
- |
- def setUpPyfakefs(self): |
- '''Bind the file-related modules to the :py:class:`pyfakefs` fake file |
- system instead of the real file system. Also bind the fake `file()` and |
- `open()` functions. |
- |
- Invoke this at the beginning of the `setUp()` method in your unit test |
- class. |
- ''' |
- self._stubber.setUp() |
- self.addCleanup(self._stubber.tearDown) |
- |
- |
- def tearDownPyfakefs(self): |
- ''':meth:`pyfakefs.fake_filesystem_unittest.setUpPyfakefs` registers the |
- tear down procedure using :meth:`unittest.TestCase.addCleanup`. Thus this |
- method is deprecated, and remains just for backward compatibility. |
- ''' |
- pass |
- |
-class Patcher(object): |
- ''' |
- Instantiate a stub creator to bind and un-bind the file-related modules to |
- the :py:mod:`pyfakefs` fake modules. |
- ''' |
- SKIPMODULES = set([None, fake_filesystem, fake_filesystem_glob, |
- fake_filesystem_shutil, fake_tempfile, sys]) |
- '''Stub nothing that is imported within these modules. |
- `sys` is included to prevent `sys.path` from being stubbed with the fake |
- `os.path`. |
- ''' |
- assert None in SKIPMODULES, "sys.modules contains 'None' values; must skip them." |
- |
- SKIPNAMES = set(['os', 'glob', 'path', 'shutil', 'tempfile']) |
- |
- def __init__(self): |
- # Attributes set by _findModules() |
- self._osModules = None |
- self._globModules = None |
- self._pathModules = None |
- self._shutilModules = None |
- self._tempfileModules = None |
- self._findModules() |
- assert None not in vars(self).values(), \ |
- "_findModules() missed the initialization of an instance variable" |
- |
- # Attributes set by _refresh() |
- self._stubs = None |
- self.fs = None |
- self.fake_os = None |
- self.fake_glob = None |
- self.fake_path = None |
- self.fake_shutil = None |
- self.fake_tempfile_ = None |
- self.fake_open = None |
- # _isStale is set by tearDown(), reset by _refresh() |
- self._isStale = True |
- self._refresh() |
- assert None not in vars(self).values(), \ |
- "_refresh() missed the initialization of an instance variable" |
- assert self._isStale == False, "_refresh() did not reset _isStale" |
- |
- def _findModules(self): |
- '''Find and cache all modules that import file system modules. |
- Later, `setUp()` will stub these with the fake file system |
- modules. |
- ''' |
- self._osModules = set() |
- self._globModules = set() |
- self._pathModules = set() |
- self._shutilModules = set() |
- self._tempfileModules = set() |
- for name, module in set(sys.modules.items()): |
- if module in self.SKIPMODULES or name in self.SKIPNAMES: |
- continue |
- if 'os' in module.__dict__: |
- self._osModules.add(module) |
- if 'glob' in module.__dict__: |
- self._globModules.add(module) |
- if 'path' in module.__dict__: |
- self._pathModules.add(module) |
- if 'shutil' in module.__dict__: |
- self._shutilModules.add(module) |
- if 'tempfile' in module.__dict__: |
- self._tempfileModules.add(module) |
- |
- 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_glob = fake_filesystem_glob.FakeGlobModule(self.fs) |
- self.fake_path = self.fake_os.path |
- 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._isStale = False |
- |
- def setUp(self, doctester=None): |
- '''Bind the file-related modules to the :py:mod:`pyfakefs` fake |
- modules real ones. Also bind the fake `file()` and `open()` functions. |
- ''' |
- if self._isStale: |
- self._refresh() |
- |
- if doctester is not None: |
- doctester.globs = self.replaceGlobs(doctester.globs) |
- |
- if sys.version_info < (3,): |
- # No file() in Python3 |
- self._stubs.SmartSet(builtins, 'file', self.fake_open) |
- self._stubs.SmartSet(builtins, 'open', self.fake_open) |
- |
- for module in self._osModules: |
- self._stubs.SmartSet(module, 'os', self.fake_os) |
- for module in self._globModules: |
- self._stubs.SmartSet(module, 'glob', self.fake_glob) |
- for module in self._pathModules: |
- self._stubs.SmartSet(module, 'path', self.fake_path) |
- for module in self._shutilModules: |
- self._stubs.SmartSet(module, 'shutil', self.fake_shutil) |
- for module in self._tempfileModules: |
- self._stubs.SmartSet(module, 'tempfile', self.fake_tempfile_) |
- |
- def replaceGlobs(self, globs_): |
- globs = globs_.copy() |
- if self._isStale: |
- self._refresh() |
- if 'os' in globs: |
- globs['os'] = fake_filesystem.FakeOsModule(self.fs) |
- if 'glob' in globs: |
- globs['glob'] = fake_filesystem_glob.FakeGlobModule(self.fs) |
- if 'path' in globs: |
- globs['path'] = fake_filesystem.FakePathModule(self.fs) |
- if 'shutil' in globs: |
- globs['shutil'] = fake_filesystem_shutil.FakeShutilModule(self.fs) |
- if 'tempfile' in globs: |
- globs['tempfile'] = fake_tempfile.FakeTempfileModule(self.fs) |
- return globs |
- |
- def tearDown(self, doctester=None): |
- '''Clear the fake filesystem bindings created by `setUp()`.''' |
- self._isStale = True |
- self._stubs.SmartUnsetAll() |