From 12e4e8f0352473a70d68ddfcfa56daa53819b5fd1fbf633715f0e533ebb75e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 3 May 2024 22:07:27 +0200 Subject: [PATCH] Sync from SUSE:SLFO:Main python-pyfakefs revision 5314340b22b35f482fdf50ddda7afdb2 --- .gitattributes | 23 +++ _multibuild | 3 + python-pyfakefs-5.2.4.tar.gz | 3 + python-pyfakefs.changes | 328 +++++++++++++++++++++++++++++++++++ python-pyfakefs.spec | 80 +++++++++ 5 files changed, 437 insertions(+) create mode 100644 .gitattributes create mode 100644 _multibuild create mode 100644 python-pyfakefs-5.2.4.tar.gz create mode 100644 python-pyfakefs.changes create mode 100644 python-pyfakefs.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/python-pyfakefs-5.2.4.tar.gz b/python-pyfakefs-5.2.4.tar.gz new file mode 100644 index 0000000..3792405 --- /dev/null +++ b/python-pyfakefs-5.2.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cac8fdc8fb3f9e2362c31821612a949e03d49657f8b55c9bacc8f268c964c93a +size 222882 diff --git a/python-pyfakefs.changes b/python-pyfakefs.changes new file mode 100644 index 0000000..7b8a674 --- /dev/null +++ b/python-pyfakefs.changes @@ -0,0 +1,328 @@ +------------------------------------------------------------------- +Thu Sep 7 11:35:15 UTC 2023 - Dirk Müller + +- update to 5.2.4: + * Fixes a rare problem on pytest shutdown. + * Adds compatibility with PyPy 3.10 and Python 3.12. + +------------------------------------------------------------------- +Wed May 10 07:06:37 UTC 2023 - Dirk Müller + +- update to 5.2.2: + * 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 + * fixture `fs_class` for pytest (see #752) + * added experimental support for Python 3.12: added fake APIs + for Windows junction support. These are not implemented and + always return `False`. + * added Python 3.12 to the test suite. + * migrated to setuptools declarative syntax. + * fixed docker tests when running on branches containing + forward slashes + +------------------------------------------------------------------- +Fri Apr 21 12:30:38 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:43:38 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Fri Oct 28 20:07:05 UTC 2022 - Yogalakshmi Arunachalam + +- 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) + +------------------------------------------------------------------- +Wed Oct 12 14:10:11 UTC 2022 - Yogalakshmi Arunachalam + +- 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) + +------------------------------------------------------------------- +Fri Aug 5 14:41:13 UTC 2022 - Ben Greiner + +- 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) + * added convenience fixtures for module- and session based fs + fixtures (fs_module and fs_session) + * fixed an incompatibility of tmpdir (and probably other + fixtures) with the module-scoped version of fs; had been + introduced in pyfakefs 4.5.5 by the fix for #666 (see #684) +- Version 4.5.6 + * Fixes a regression which broke tests with older pytest versions + (< 3.9). + * minimum supported pytest version is now 3.0 (older versions do + not work properly with current Python versions) + * only skip _pytest.pathlib in pytest versions where it is + actually present (see #669) +- Version 4.5.5 + * Bugfix release, needed for compatibility with pytest 7.0. + * correctly handle file system space for files opened in write + mode (see #660) + * correctly handle reading/writing pipes via file (see #661) + * disallow encoding argument on binary open() (see #664) + * fixed compatibility issue with pytest 7.0.0 (see #666) +- Version 4.5.4 + * added missing mocked functions for fake pipe (see #650) + * fixed some bytes warnings (see #651) +- Don't catchall in files section + +------------------------------------------------------------------- +Tue Dec 14 04:24:56 UTC 2021 - Steve Kowalik + +- Update to 4.5.3: + * 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) + + Reverted one Windows-specific optimization that can break tests under some conditions (see #573) + + Setting os did not reset os.sep and related variables, fixed null device name, added os.pathsep and missing os.path variables (see #572) + + open calls had not been patched for modules with a name ending with "io" (see #569) + + remove dependency of pyfakefs on pytest (regression, see #565) + +------------------------------------------------------------------- +Sat Mar 14 07:22:28 UTC 2020 - Tomáš Chvátal + +- Update to 4.0.2: + * py3 only variant + +------------------------------------------------------------------- +Sun Mar 8 03:36:36 UTC 2020 - Tomáš Chvátal + +- Swith to multibuild in order to avoid full python buildcycle + +------------------------------------------------------------------- +Sat Mar 7 13:52:47 UTC 2020 - Tomáš Chvátal + +- Update to 3.7.2: + * Various fixes for python 3.8 + +------------------------------------------------------------------- +Wed Dec 11 08:44:45 UTC 2019 - Tomáš Chvátal + +- Pull in the full python + +------------------------------------------------------------------- +Mon Oct 7 18:01:45 UTC 2019 - Tomáš Chvátal + +- Update 3.6.1: + * fix borked tests from 3.6 + +------------------------------------------------------------------- +Mon Oct 7 08:49:15 UTC 2019 - Tomáš Chvátal + +- Update to 3.6: + * fixed incorrect argument names for some os functions + * fake DirEntry now implements os.PathLike in Python >= 3.6 (see #483) + * fixed incorrect argument name for os.makedirs (see #481) + * avoid pytest warning under Python 2.7 (see #466) + * add next to FakeFileWrapper (see #485) + +------------------------------------------------------------------- +Fri Mar 22 14:28:34 UTC 2019 - Tomáš Chvátal + +- Update to 3.5.8: + * Mainly fixes a regression bug under Python 2.7. + +------------------------------------------------------------------- +Tue Feb 12 15:37:32 UTC 2019 - Karol Babioch + +- Update to version 3.5.7 + * Fixes a regression introduced in the last version + +------------------------------------------------------------------- +Mon Jan 14 08:32:56 UTC 2019 - Karol Babioch + +- Removed unit tests from package + +------------------------------------------------------------------- +Sun Jan 13 17:26:44 UTC 2019 - Karol Babioch + +- Update to version 3.5.6 + * import external pathlib2 and scandir packages first if present + +------------------------------------------------------------------- +Thu Dec 20 21:11:36 UTC 2018 - Karol Babioch + +- Update to version 3.5.5 + * Removed permission warnings (shebang line vs. executable bit) + +------------------------------------------------------------------- +Thu Dec 20 07:33:19 UTC 2018 - Karol Babioch + +- Update to version 3.5.4 + * added context manager class Pause for pause/resume + * fixed permission handling for root user + * avoid AttributeError triggered by modules without __module__ attribute + +------------------------------------------------------------------- +Thu Nov 22 19:40:46 UTC 2018 - Karol Babioch + +- Update to version 3.5.3 + * automatically patch file system methods imported as another name like from + os.path import exists as my_exists, including builtin open and io.open + * make tests for access time less strict to account for file systems that do + not change it immediately + +------------------------------------------------------------------- +Mon Nov 12 09:07:49 UTC 2018 - Karol Babioch + +- Update to version 3.5.2 + * This is mostly a bug-fix release. + * added support for pause/resume of patching the file system modules + * allow to set current group ID, set current user ID and group ID as `st_uid` + and `st_gid` in new files + * fixed using `modules_to_patch` (regression) + * fixed recursion error on unpickling the fake file system + * allow trailing path in `add_real_directory` + +------------------------------------------------------------------- +Thu Nov 1 10:04:37 UTC 2018 - Tomáš Chvátal + +- State in more dependencies, the tests are still borked + +------------------------------------------------------------------- +Tue Oct 23 06:39:22 UTC 2018 - Karol Babioch + +- 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 + +------------------------------------------------------------------- +Thu Jun 14 05:05:28 UTC 2018 - kbabioch@suse.com + +- 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 + +------------------------------------------------------------------- +Tue Apr 17 11:42:01 UTC 2018 - kbabioch@suse.com + +- Initial packaging of version 3.4.1 diff --git a/python-pyfakefs.spec b/python-pyfakefs.spec new file mode 100644 index 0000000..5b16ade --- /dev/null +++ b/python-pyfakefs.spec @@ -0,0 +1,80 @@ +# +# spec file +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?!python_module:%define python_module() python3-%{**}} +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%{?sle15_python_module_pythons} +Name: python-pyfakefs%{psuffix} +Version: 5.2.4 +Release: 0 +Summary: Fake file system that mocks the Python file system modules +License: Apache-2.0 +URL: https://github.com/jmcgeheeiv/pyfakefs +Source: https://github.com/jmcgeheeiv/pyfakefs/archive/v%{version}.tar.gz#/python-pyfakefs-%{version}.tar.gz +BuildRequires: %{python_module setuptools} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python +BuildArch: noarch +%if %{with test} +BuildRequires: %{python_module pytest >= 3} +BuildRequires: %{pythons} +%endif +%python_subpackages + +%description +pyfakefs implements a fake file system that mocks the Python file system +modules. Using pyfakefs, your tests operate on a fake file system in +memory without touching the real disk. The software under test requires +no modification to work with pyfakefs. + +%prep +%setup -q -n pyfakefs-%{version} + +%build +%python_build + +%install +%if !%{with test} +%python_install +%python_expand rm -r %{buildroot}%{$python_sitelib}/pyfakefs/tests/ +%python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif + +%check +%if %{with test} +export LANG=C.UTF-8 +%python_expand PYTHONPATH=$(pwd) $python -m pyfakefs.tests.all_tests +%endif + +%if !%{with test} +%files %{python_files} +%doc CHANGES.md README.md +%license COPYING +%{python_sitelib}/pyfakefs +%{python_sitelib}/pyfakefs-%{version}*-info +%endif + +%changelog