The released versions correspond to PyPi releases.
Note: pyfakefs 4.0 is planned for release at the end of 2019 or the beginning of 2020. As pyfakefs 4.0 is a major release, we are giving you advance notice of the proposed changes so you can be ready.
os.scandir
with non-existing directory (see #498)use_dynamic_patch
src_dir_fd
and dst_dir_fd
arguments in os.rename
, os.replace
and os.link
additional_skip_names
argument (see #482)allow_root_user
to Patcher
and UnitTest
to allow forcing non-root access (see #474)os.pipe
(see #473)add_real_directory
add_real_symlink
os
functionsDirEntry
now implements os.PathLike
in Python >= 3.6 (see #483)os.makedirs
(see #481)Another bug-fix release that mainly fixes a regression wih Python 2 that has been introduced in version 3.5.3.
open
under Python 2 broke unit tests (see #469)add_real_file
(see #470)FakeIOModule.open
(see #471)python setup.py test
under Python 2 regardless of pathlib2
presenceThis is mostly a bug-fix release.
pathlib
did not get patched in the presence of pathlib2
(see #467)python setup.py test
under Python 2pathlib2
and scandir
packages first if present (see #462)Pause
for pause/resume (see #448)AttributeError
shown while displaying fs
in a failing pytest in Python 2AttributeError
triggered by modules without __module__
attribute (see #460)This is a minor release to have a version with passing tests for OpenSUSE packaging.
from os.path import exists as my_exists
, including builtin open
and io.open
This is mostly a bug-fix release.
st_uid
and st_gid
in new files (#449)modules_to_patch
(regression, see #450)add_real_directory
(#446)from pyfakefs.deprecator import Deprecator Deprecator.show_warnings = False
from os.path import exists
(#443)import os as _os
) is now correctly patched without the need of additional parameters (#434)Path
if imported like from pathlib import Path
(#440)patch_path
has been removed from UnitTest
and Patcher
, the correct patching of path
imports is now done automatically (#429)UnitTest
/Patcher
arguments can now also be set in setUpPyfakefs()
(#430)contents=None
in create_file()
as empty contents if size not set (#424)pathlib2
support (#408) (#422)shutil
functions using zipfile
(#427)This is mostly a bug fix release, mainly for bugs found by @agroce using tstl.
create_file()
, create_dir()
, create_symlink()
, add_real_file()
and add_real_directory()
(Python >= 3.6, see #409)tell
after seek
gave incorrect result in append mode (#363)readline()
did not work correctly in binary mode (#411)pathlib.Path.resolve()
behaved incorrectly if the path does not exist (#401)closed
attribute was not implemented in fake file (#380)add_real_directory
did not behave correctly for nested pathsos.rename
(#400)os.link
(#399, #407)os.rmdir
(#398)os.mkdir
, os.makedirs
(#396)os.rename
(#391, #395, #396, #389, #406)os.symlink
(#371, #390)os.path.isdir
(#387)open
(#362, #369, #397)os.path.lexists
, os.path.islink
(#365, #373, #396)os.remove
(#360, #377, #396)os.stat
(#376)os.path.isfile
(#374)os.path.getsize
(#368)os.lstat
(#366)os.path.exists
(#364)os.readlink
(#359, #372, #392)This is a bug fix only release.
tempfile
after test execution (regression, see #356)add_real_directory
does not work after chdir
(see #355)This version of pyfakefs does not support Python 2.6. Python 2.6 users must use pyfakefs 3.3 or earlier.
Patcher
and TestCase
:os.scandir
(Python >= 3.7, Posix only) (see #346)scandir
module (#332)IOError
/OSError
exception messages in the fake file system now always start with the message issued in the real file system in Unix systems (see #202)os.scandir
shall not be resolved (#350)open()
for Python 3, added support for universal newline mode in Python 2 (#339)flush
(#302, #300)os.lstat()
crashed with several trailing path separators (#342)os.path.split()
and os.path.dirname()
gave incorrect results under Windows (#335)This is the last release that supports Python 2.6.
setUp()
(related to #191). Note that this may break test code that assumes that the fake file system is completely empty at test start.import os as '_os
(#231)dir_fd
argument in several os
functions (#206)os.utime
, os.chmod
, os.chdir
, os.chown
, os.listdir
, os.stat
and os.lstat
(Python >= 3.3) (#205)os.open()
(#204)os.path.samefile
implementation (#193)ns
argument in os.utime()
(Python >= 3.3) (#192)os.stat_result
(Python >= 3.3) (#196)fake_filesystem_shutil
implementation, relying on the patched os
module instead (#194)fake_tempfile
and fake_filesystem_glob
, relying on the patched os
module instead (#189, #191)TSTL
label)IOError
vs OSError
) raised in several casesrename
did not behave like os.rename
in many cases__init__()
and setUp()
(#199)errors
argument is supported for io.open()
and os.open()
add_real_file()
, add_real_directory()
and add_real_paths()
make real files and directories appear within the fake file system. File contents are read from the real file system only as needed (#170). See example_test.py
for a usage example.TestCase.copyRealFile()
in favor of add_real_file()
. copyRealFile()
remains only for backward compatability. Also, some less-popular argument combinations have been disallowed.CHANGES.md
, to the release manifestmox3
package is no longer a prerequisite--the portion required by pyfakefs has been integrated into pyfakefs (#182)FakeShutilModule.rmtree()
failed for directories ending with path separator (#177)pathlib.glob()
incorrectly handled case under MacOS (#167)TestCase.copyRealFile()
to copy a file from the real file system to the fake file system. This makes it easy to use template, data and configuration files in your tests.fs
.os
and os.path
modules (Python >= 3.6)pathlib
module (Python >= 3.4) (#29)os.replace
(Python >= 3.3)os.access
, os.chmod
, os.chown
, os.stat
, os.utime
: support for follow_symlinks
argument (Python >= 3.3)os.scandir
(Python >= 3.5) (#119)path
(#53)glob.glob
, glob.iglob
: support for recursive
argument (Python >= 3.5) (#116)glob.iglob
(#59)shutil.move
incorrectly moves directories (#145)open
(Python >= 3.3) (#147)Patcher
with py.test (#135)os.listdir
returned sorted instead of unsorted entriesio.open
, os.open
: support for encoding
argument (#120)os.makedirs
: support for exist_ok
argument (Python >= 3.2) (#98)io.open()
(#70)shutil.rmtree
: support for ignore_errors
and onerror
arguments (#72)os.fsync()
and os.fdatasync()
(#73)os.walk
: Support for followlinks
argumentshutil
functions like make_archive
do not work with pyfakefs (#104)shutil.copy
error with bytes contents (#105)fake_filesystem_unittest
(transparently patches all calls to faked implementations)os.utime
fails to traverse symlinks (#49)chown
incorrectly accepts non-integer uid/gid arguments (#30)fake_tempfile
is using AddOpenFile
incorrectly (#23)relpath
, abspath
and normpath
on Windows.open
in binary mode not working (#32)os.remove
doesn't work with relative paths (#31)mkstemp
returns no valid file descriptor (#19)open
methods lack IOError
for prohibited operations (#18)FakeFileOpen
keyword args do not match the __builtin__
equivalents (#5)There are no release notes for releases 2.6 and below. The following versions are still available on PyPi: