diff options
Diffstat (limited to 'catapult/telemetry/third_party/pyfakefs/pyfakefs/example.py')
-rw-r--r-- | catapult/telemetry/third_party/pyfakefs/pyfakefs/example.py | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/catapult/telemetry/third_party/pyfakefs/pyfakefs/example.py b/catapult/telemetry/third_party/pyfakefs/pyfakefs/example.py new file mode 100644 index 00000000..436e4cf2 --- /dev/null +++ b/catapult/telemetry/third_party/pyfakefs/pyfakefs/example.py @@ -0,0 +1,121 @@ +# Copyright 2014 Altera Corporation. All Rights Reserved. +# Author: 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. + +""" +Example module that is tested in :py:class`pyfakefs.example_test.TestExample`. +This demonstrates the usage of the +:py:class`pyfakefs.fake_filesystem_unittest.TestCase` base class. + +The modules related to file handling are bound to the respective fake modules: + +>>> os #doctest: +ELLIPSIS +<fake_filesystem.FakeOsModule object...> +>>> os.path #doctest: +ELLIPSIS +<fake_filesystem.FakePathModule object...> +>>> glob #doctest: +ELLIPSIS +<fake_filesystem_glob.FakeGlobModule object...> +>>> shutil #doctest: +ELLIPSIS +<fake_filesystem_shutil.FakeShutilModule object...> + +The `open()` built-in is bound to the fake `open()`: + +>>> open #doctest: +ELLIPSIS +<fake_filesystem.FakeFileOpen object...> + +In Python 2 the `file()` built-in is also bound to the fake `open()`. `file()` +was eliminated in Python 3. +""" + +import os +import glob +import shutil + +def create_file(path): + '''Create the specified file and add some content to it. Use the `open()` + built in function. + + For example, the following file operations occur in the fake file system. + In the real file system, we would not even have permission to write `/test`: + + >>> os.path.isdir('/test') + False + >>> os.mkdir('/test') + >>> os.path.isdir('/test') + True + >>> os.path.exists('/test/file.txt') + False + >>> create_file('/test/file.txt') + >>> os.path.exists('/test/file.txt') + True + >>> with open('/test/file.txt') as f: + ... f.readlines() + ["This is test file '/test/file.txt'.\\n", 'It was created using the open() function.\\n'] + ''' + with open(path, 'w') as f: + f.write("This is test file '{}'.\n".format(path)) + f.write("It was created using the open() function.\n") + +def delete_file(path): + '''Delete the specified file. + + For example: + + >>> os.mkdir('/test') + >>> os.path.exists('/test/file.txt') + False + >>> create_file('/test/file.txt') + >>> os.path.exists('/test/file.txt') + True + >>> delete_file('/test/file.txt') + >>> os.path.exists('/test/file.txt') + False + ''' + os.remove(path) + +def path_exists(path): + '''Return True if the specified file exists. + + For example: + + >>> path_exists('/test') + False + >>> os.mkdir('/test') + >>> path_exists('/test') + True + >>> + >>> path_exists('/test/file.txt') + False + >>> create_file('/test/file.txt') + >>> path_exists('/test/file.txt') + True + ''' + return os.path.exists(path) + +def get_glob(glob_path): + '''Return the list of paths matching the specified glob expression. + + For example: + + >>> os.mkdir('/test') + >>> create_file('/test/file1.txt') + >>> create_file('/test/file2.txt') + >>> get_glob('/test/file*.txt') + ['/test/file1.txt', '/test/file2.txt'] + ''' + return glob.glob(glob_path) + +def rm_tree(path): + '''Delete the specified file hierarchy.''' + shutil.rmtree(path) |