Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: tools/telemetry/third_party/pyfakefs/pyfakefs/fake_tempfile.py

Issue 1647513002: Delete tools/telemetry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/third_party/pyfakefs/pyfakefs/fake_tempfile.py
diff --git a/tools/telemetry/third_party/pyfakefs/pyfakefs/fake_tempfile.py b/tools/telemetry/third_party/pyfakefs/pyfakefs/fake_tempfile.py
deleted file mode 100644
index 090425d19fbaf0e3eeec4a9f02ccd363279c044e..0000000000000000000000000000000000000000
--- a/tools/telemetry/third_party/pyfakefs/pyfakefs/fake_tempfile.py
+++ /dev/null
@@ -1,312 +0,0 @@
-# Copyright 2010 Google Inc. All Rights Reserved.
-#
-# 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.
-
-"""Fake tempfile module.
-
-Fake implementation of the python2.4.1 tempfile built-in module that works with
-a FakeFilesystem object.
-"""
-#pylint: disable-all
-
-import errno
-import logging
-import os
-import stat
-import tempfile
-
-import fake_filesystem
-
-try:
- import StringIO as io # pylint: disable-msg=C6204
-except ImportError:
- import io # pylint: disable-msg=C6204
-
-
-class FakeTempfileModule(object):
- """Uses a FakeFilesystem to provide a mock for the tempfile 2.4.1 module.
-
- Common usage:
- filesystem = fake_filesystem.FakeFilesystem()
- my_tempfile_module = mock_tempfile.FakeTempfileModule(filesystem)
-
- See also: default keyword arguments for Dependency Injection on
- http://go/tott-episode-12
- """
-
- def __init__(self, filesystem):
- self._filesystem = filesystem
- self._tempfile = tempfile
- self.tempdir = None # initialized by mktemp(), others
- self._temp_prefix = 'tmp'
- self._mktemp_retvals = []
-
- # pylint: disable-msg=W0622
- def _TempFilename(self, suffix='', prefix=None, dir=None):
- """Create a temporary filename that does not exist.
-
- This is a re-implementation of how tempfile creates random filenames,
- and is probably different.
-
- Does not modify self._filesystem, that's your job.
-
- Output: self.tempdir is initialized if unset
- Args:
- suffix: filename suffix
- prefix: filename prefix
- dir: dir to put filename in
- Returns:
- string, temp filename that does not exist
- """
- if dir is None:
- dir = self._filesystem.JoinPaths(self._filesystem.root.name, 'tmp')
- filename = None
- if prefix is None:
- prefix = self._temp_prefix
- while not filename or self._filesystem.Exists(filename):
- # pylint: disable-msg=W0212
- filename = self._filesystem.JoinPaths(dir, '%s%s%s' % (
- prefix,
- next(self._tempfile._RandomNameSequence()),
- suffix))
- return filename
-
- # pylint: disable-msg=W0622,W0613
- def TemporaryFile(self, mode='w+b', bufsize=-1,
- suffix='', prefix=None, dir=None):
- """Return a file-like object deleted on close().
-
- Python 2.4.1 tempfile.TemporaryFile.__doc__ =
- >Return a file (or file-like) object that can be used as a temporary
- >storage area. The file is created using mkstemp. It will be destroyed as
- >soon as it is closed (including an implicit close when the object is
- >garbage collected). Under Unix, the directory entry for the file is
- >removed immediately after the file is created. Other platforms do not
- >support this; your code should not rely on a temporary file created using
- >this function having or not having a visible name in the file system.
- >
- >The mode parameter defaults to 'w+b' so that the file created can be read
- >and written without being closed. Binary mode is used so that it behaves
- >consistently on all platforms without regard for the data that is stored.
- >bufsize defaults to -1, meaning that the operating system default is used.
- >
- >The dir, prefix and suffix parameters are passed to mkstemp()
-
- Args:
- mode: optional string, see above
- bufsize: optional int, see above
- suffix: optional string, see above
- prefix: optional string, see above
- dir: optional string, see above
- Returns:
- a file-like object.
- """
- # pylint: disable-msg=C6002
- # TODO: prefix, suffix, bufsize, dir, mode unused?
- # cannot be cStringIO due to .name requirement below
- retval = io.StringIO()
- retval.name = '<fdopen>' # as seen on 2.4.3
- return retval
-
- # pylint: disable-msg=W0622,W0613
- def NamedTemporaryFile(self, mode='w+b', bufsize=-1,
- suffix='', prefix=None, dir=None, delete=True):
- """Return a file-like object with name that is deleted on close().
-
- Python 2.4.1 tempfile.NamedTemporaryFile.__doc__ =
- >This function operates exactly as TemporaryFile() does, except that
- >the file is guaranteed to have a visible name in the file system. That
- >name can be retrieved from the name member of the file object.
-
- Args:
- mode: optional string, see above
- bufsize: optional int, see above
- suffix: optional string, see above
- prefix: optional string, see above
- dir: optional string, see above
- delete: optional bool, see above
- Returns:
- a file-like object including obj.name
- """
- # pylint: disable-msg=C6002
- # TODO: bufsiz unused?
- temp = self.mkstemp(suffix=suffix, prefix=prefix, dir=dir)
- filename = temp[1]
- mock_open = fake_filesystem.FakeFileOpen(
- self._filesystem, delete_on_close=delete)
- obj = mock_open(filename, mode)
- obj.name = filename
- return obj
-
- # pylint: disable-msg=C6409
- def mkstemp(self, suffix='', prefix=None, dir=None, text=False):
- """Create temp file, returning a 2-tuple: (9999, filename).
-
- Important: Returns 9999 instead of a real file descriptor!
-
- Python 2.4.1 tempfile.mkstemp.__doc__ =
- >mkstemp([suffix, [prefix, [dir, [text]]]])
- >
- >User-callable function to create and return a unique temporary file.
- >The return value is a pair (fd, name) where fd is the file descriptor
- >returned by os.open, and name is the filename.
- >
- >...[snip args]...
- >
- >The file is readable and writable only by the creating user ID.
- >If the operating system uses permission bits to indicate whether
- >a file is executable, the file is executable by no one. The file
- >descriptor is not inherited by children of this process.
- >
- >Caller is responsible for deleting the file when done with it.
-
- NOTE: if dir is unspecified, this call creates a directory.
-
- Output: self.tempdir is initialized if unset
- Args:
- suffix: optional string, filename suffix
- prefix: optional string, filename prefix
- dir: optional string, directory for temp file; must exist before call
- text: optional boolean, True = open file in text mode.
- default False = open file in binary mode.
- Returns:
- 2-tuple containing
- [0] = int, file descriptor number for the file object
- [1] = string, absolute pathname of a file
- Raises:
- OSError: when dir= is specified but does not exist
- """
- # pylint: disable-msg=C6002
- # TODO: optional boolean text is unused?
- # default dir affected by "global"
- filename = self._TempEntryname(suffix, prefix, dir)
- fh = self._filesystem.CreateFile(filename, st_mode=stat.S_IFREG|0o600)
- fd = self._filesystem.AddOpenFile(fh)
-
- self._mktemp_retvals.append(filename)
- return (fd, filename)
-
- # pylint: disable-msg=C6409
- def mkdtemp(self, suffix='', prefix=None, dir=None):
- """Create temp directory, returns string, absolute pathname.
-
- Python 2.4.1 tempfile.mkdtemp.__doc__ =
- >mkdtemp([suffix[, prefix[, dir]]])
- >Creates a temporary directory in the most secure manner
- >possible. [...]
- >
- >The user of mkdtemp() is responsible for deleting the temporary
- >directory and its contents when done with it.
- > [...]
- >mkdtemp() returns the absolute pathname of the new directory. [...]
-
- Args:
- suffix: optional string, filename suffix
- prefix: optional string, filename prefix
- dir: optional string, directory for temp dir. Must exist before call
- Returns:
- string, directory name
- """
- dirname = self._TempEntryname(suffix, prefix, dir)
- self._filesystem.CreateDirectory(dirname, perm_bits=0o700)
-
- self._mktemp_retvals.append(dirname)
- return dirname
-
- def _TempEntryname(self, suffix, prefix, dir):
- """Helper function for mk[ds]temp.
-
- Args:
- suffix: string, filename suffix
- prefix: string, filename prefix
- dir: string, directory for temp dir. Must exist before call
- Returns:
- string, entry name
- """
- # default dir affected by "global"
- if dir is None:
- call_mkdir = True
- dir = self.gettempdir()
- else:
- call_mkdir = False
-
- entryname = None
- while not entryname or self._filesystem.Exists(entryname):
- entryname = self._TempFilename(suffix=suffix, prefix=prefix, dir=dir)
- if not call_mkdir:
- # This is simplistic. A bad input of suffix=/f will cause tempfile
- # to blow up, but this mock won't. But that's already a broken
- # corner case
- parent_dir = os.path.dirname(entryname)
- try:
- self._filesystem.GetObject(parent_dir)
- except IOError as err:
- assert 'No such file or directory' in str(err)
- # python -c 'import tempfile; tempfile.mkstemp(dir="/no/such/dr")'
- # OSError: [Errno 2] No such file or directory: '/no/such/dr/tmpFBuqjO'
- raise OSError(
- errno.ENOENT,
- 'No such directory in mock filesystem',
- parent_dir)
- return entryname
-
- # pylint: disable-msg=C6409
- def gettempdir(self):
- """Get default temp dir. Sets default if unset."""
- if self.tempdir:
- return self.tempdir
- # pylint: disable-msg=C6002
- # TODO: environment variables TMPDIR TEMP TMP, or other dirs?
- self.tempdir = '/tmp'
- return self.tempdir
-
- # pylint: disable-msg=C6409
- def gettempprefix(self):
- """Get temp filename prefix.
-
- NOTE: This has no effect on py2.4
-
- Returns:
- string, prefix to use in temporary filenames
- """
- return self._temp_prefix
-
- # pylint: disable-msg=C6409
- def mktemp(self, suffix=''):
- """mktemp is deprecated in 2.4.1, and is thus unimplemented."""
- raise NotImplementedError
-
- def _SetTemplate(self, template):
- """Setter for 'template' property."""
- self._temp_prefix = template
- logging.error('tempfile.template= is a NOP in python2.4')
-
- def __SetTemplate(self, template):
- """Indirect setter for 'template' property."""
- self._SetTemplate(template)
-
- def __DeprecatedTemplate(self):
- """template property implementation."""
- raise NotImplementedError
-
- # reading from template is deprecated, setting is ok.
- template = property(__DeprecatedTemplate, __SetTemplate,
- doc="""Set the prefix for temp filenames""")
-
- def FakeReturnedMktempValues(self):
- """For validation purposes, mktemp()'s return values are stored."""
- return self._mktemp_retvals
-
- def FakeMktempReset(self):
- """Clear the stored mktemp() values."""
- self._mktemp_retvals = []

Powered by Google App Engine
This is Rietveld 408576698