* fixed a regression from version 5.4.0 that incorrectly
handled files opened twice via file descriptor
- update to 5.4.0
* Improves permission handling.
* added support for `O_NOFOLLOW` and `O_DIRECTORY` flags in
`os.open`
* added support for fake `os.dup`, `os.dup2` and `os.lseek`
* fixed a specific problem on reloading a pandas-related module
* added possibility for unload hooks for specific modules
use this also to reload django views (see #932)
* fixed `EncodingWarning` for Python >= 3.11 (see #957)
consider directory ownership while adding or removing
directory entries
* fixed handling of directory enumeration and search
permissions under Posix systems
* fixed creation of the temp directory in the fake file system
after a filesystem reset
* fixed handling of `dirfd` in `os.symlink` (see #968)
* add missing `follow_symlink` argument to `os.link` (see #973)
* fixed handling of missing attribute in `os.getxattr` (see
* fixed permission problem with `shutil.rmtree` if emulating
Windows under POSIX
* fixed handling of errors on opening files via file descriptor
* fixed handling of `umask` - it is now applied by default
* fixed behavior of `os.makedirs` (see #987)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=48
* fixes handling of unhashable modules which cannot be cached
(see #923)
* reload modules loaded by the dynamic patcher instead of
removing them - sometimes they may
* not be reloaded automatically (see #932)
* add back argument `use_dynamic_patch` as a fallback for
similar problems
* fixed a problem with patching `_io` under Python 3.12 (see
#910)
* fixed a problem with accessing the temp path if emulating
Linux under Windows
* (see #912)
* fixed result of `os.walk` with a path-like top directory
* (see #915)
* properly fixed the problem that filesystem patching was still
active in the pytest
* logreport phase (see #904), the previous fix was incomplete
* changed behavior of `add_real_directory` to be able to map a
real directory
* Restores compatibility with PyTorch 2.0 and above, as well as
with other classes that have custom __setattr__ methods
(see #905).
* Adds official support for Python 3.12.
* removed a leftover debug print statement (see #869)
* make sure tests work without HOME environment set (see #870)
* automount drive or UNC path under Windows if needed for
`pathlib.Path.mkdir()`
* (see #890)
* adapt patching `io.open` and `io.open_code` to work with
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=44
* Fixes a rare problem on pytest shutdown.
* Adds compatibility with PyPy 3.10 and Python 3.12.
`fake_path.FakePathModule`, `fake_io.FakeIoModule` and
- Update to version 5.0.0
- Update to version 4.7.0
- Update to version 3.5.2
- Added support for path-like objects as arguments in create_file(),
- readline() did not work correctly in binary mode
- several functions did not behave correctly for paths ending with a
- Initial packaging of version 3.4.1
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=42
* Made the user and group IDs accessible via dedicated
``get_uid`` and ``get_gid`` functions
(for symmetry to ``set_uid`` / ``set_gid``)
* The test fixture is now included in the source distribution
and installed with the package.
* Some public constants in `fake_filesystem` that had been
moved to `helpers` are made accessible from there again
* Add missing fake implementations for `os.getuid` and
`os.getgid` (Posix only)
* Make sure a `/tmp` path exists under linux (`TMPDIR` may
point elsewhere)
* Support for latest Python 3.12 version.
* Properties defining the capabilities of some `os` functions
like `os.supports_follow_symlinks` are now properly faked to
contain the fake functions if the real functions are faked
* Supports current Python 3.12 version (alpha 6). We plan to
make patch releases in case of breaking changes in alpha
or beta versions.
* Fake module classes previously defined in `fake_filesystem`
have now moved to their own modules: `fake_os.FakeOsModule`,
`fake_path.FakePathModule`, `fake_io.FakeIoModule` and
`fake_open.FakeFileOpen`.
* Patching of parsers for pandas >= 1.2 is removed since pandas
now uses Python fs functions internally even when the engine
selected is "c".
* added possibility to set a path inaccessible under Windows by
using `chown()` with the `force_unix_mode` flag (see #720)
* added class level setup method `setUpClassPyfakefs` for
unittest and class-scoped
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=40
- Update to version 5.0.0
New version after the transfer to pytest-dev.
Changes
* the old-style API deprecated since version 3.4 has now been removed
* the method copyRealFile deprecated since version 3.2 has been removed - use add_real_file instead
Infrastructure
* transferred the repository to the pytest-dev organization
* renamed the master branch to main
* added automatic PyPI release workflow
* move documentation from GitHub Pages to Read the Docs
New Features
* added some support for st_blocks in stat result (see #722)
Fixes
* fixed handling of O_TMPFILE in os.open (caused handling of O_DIRECTORY as O_TMPFILE) (see #723)
* fixed handling of read permissions (see #719)
OBS-URL: https://build.opensuse.org/request/show/1032042
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=36
- Update to version 4.7.0
Changes
fs fixtures cannot be nested; any nested fs fixture
(for example inside an fs_session or fs_module fixture) will just reference the outer fixture (the behavior had been unexpected before)
Fixes
reverted a performance optimization introduced in version 3.3.0 that caused hanging tests with installed torch (see #693)
do not use the build-in opener in pathlib as it may cause problems (see #697)
add support for path-like objects in shutil.disk_usage (see #699)
do not advertise support for Python 3.6 in setup.py (see #707)
return the expected type from fcntl.ioctl and fcntl.fcntl calls if arg is of type byte; the call itself does nothing as before
do not skip filesystem modules by name to allow using own modules with the same name (see #707)
add missing support for os.renames (see #714)
OBS-URL: https://build.opensuse.org/request/show/1010263
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=34
- Update to 4.6.3
* automatically reset filesystem on changing is_windows_fs or
is_macos (see #692) - ensures better upwards compatibility in
most cases
* Make sure you write to the filesystem after you change
is_windows_fs or is_macos, otherwise the changes will be lost.
* fixed regression: os.path.exists returned True for any root
drive path under Windows
- Update to 4.6.2
* fixed support for opener introduced in previous patch release
(see #689)
* added support for opener argument in open, which is used in
tempfile in Python 3.11 since beta 4 (see #686)
* make sure tests run without pyfakefs installed as a package
(see #687)
- Version 4.6.0
* Adds support for Python 3.11, removes support for Python 3.6,
changes root path behavior under Windows.
* Python 3.6 has reached its end of life on 2021/12/23 and is no
longer officially supported by pyfakefs ** os.stat_float_times
has been removed in Python 3.7 and is therefore no longer
supported under Windows, the root path is now effectively C:\
instead of \; a path starting with \ points to the current
drive as in the real file system (see #673)
* fake pathlib.Path.owner() and pathlib.Path.group() now behave
like the real methods - they look up the real user/group name
for the user/group id that is associated with the fake file
(see #678)
* added some support for the upcoming Python version 3.11 (see
#677)
OBS-URL: https://build.opensuse.org/request/show/993340
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=32
* New Features
+ added support for some Python 3.10 features:
+ new method pathlib.Path.hardlink_to
+ new newline argument in pathlib.Path.write_text
+ new follow_symlinks argument in pathlib.Path.stat and pathlib.Path.chmod
+ new 'strict' argument in os.path.realpath
+ added support for pathlib.Path.link_to (new in Python 3.8) (see #580)
+ added support for pathlib.Path.readlink (new in Python 3.9) (see #584)
+ added FakeFilesystem.create_link convenience method which creates intermittent directories (see #580)
* Changes
+ Python 3.5 has reached its end of life in September 2020 and is no longer supported
+ pathlib2 is still supported, but considered to have the same functionality as pathlib and is no longer tested separately; the previous behavior broke newer pathlib features if pathlib2 was installed (see #592)
+ Added caching of patched modules to avoid lookup overhead
+ Added use_cache option and clear_cache method to be able to deal with unwanted side effects of the newly introduced caching
+ The patchfs decorator now expects a positional argument instead of the keyword arguments fs. This avoids confusion with the pytest fs fixture and conforms to the behavior of mock.patch. You may have to adapt the argument order if you use the patchfs and mock.patch decorators together (see #566)
+ Default arguments that are file system functions are now not patched by default to avoid a large performance impact. An additional parameter patch_default_args has been added that switches this behavior on (see #567).
* Fixes
+ added handling of path-like where missing
+ improved handling of str/bytes paths
+ suppress all warnings while inspecting loaded modules (see #614)
+ do not import pandas and related modules if it is not patched (see #627)
+ handle pathlib.Path.owner() and pathlib.Path.group by returning the current user/group name (see #629)
+ fixed handling of use_known_patches=False (could cause an exception)
+ correctly handle byte paths in os.path.exists (see #595)
+ Update fake_pathlib to support changes coming in Python 3.10 (see
+ correctly handle UNC paths in os.path.split and in directory path evaluation (see #606)
+ fixed handling of pipe descriptors in the fake filesystem (see #581)
+ added non-functional argument effective_ids to os.access (see #585)
+ correctly handle os.file for unreadable files (see #588)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=31
- Update to version 3.5
* This version of pyfakefs does not support Python 3.3.
* The deprecation warnings for the old API are now switched on by default.
* Improved automatic patching:
* added possibility to set user ID
* added side_effect option to fake files
* added some support for extended filesystem attributes under Linux
* handle `contents=None` in `create_file()` as empty contents if size not set
* added pathlib2 support
* added support for null device
* improved error message for "Bad file descriptor in fake filesystem"
* fixed pytest when both pyfakefs and future are installed
* file timestamps are now updated more according to the real behavior
* fixed a problem related with patching shutil functions using zipfile
OBS-URL: https://build.opensuse.org/request/show/643884
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=5
- Update to version 3.4.3
- Added support for path-like objects as arguments in create_file(),
create_dir(), create_symlink(), add_real_file() and add_real_directory()
- Bugfixes:
- tell after seek gave incorrect result in append mode
- flushing file contents after truncate was incorrect under some conditions
- readline() did not work correctly in binary mode
- pathlib.Path.resolve() behaved incorrectly if the path does not exist
- closed attribute was not implemented in fake file
- add_real_directory did not behave correctly for nested paths
- several functions did not behave correctly for paths ending with a
path separator
OBS-URL: https://build.opensuse.org/request/show/616707
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pyfakefs?expand=0&rev=3