From a8ff9bc07b39f07bd90fd897377c9d8695fa2606 Mon Sep 17 00:00:00 2001 From: mrbean-bremen Date: Mon, 23 Dec 2024 19:07:44 +0100 Subject: [PATCH] Testing hook_test separately --- .github/workflows/testsuite.yml | 3 -- .../pytest_module_fixture_test.py | 2 + pyfakefs/pytest_tests1/__init__.py | 0 pyfakefs/pytest_tests1/conftest.py | 40 +++++++++++++++++++ .../pytest_module_fixture_test.py | 31 ++++++++++++++ 5 files changed, 73 insertions(+), 3 deletions(-) create mode 100644 pyfakefs/pytest_tests1/__init__.py create mode 100644 pyfakefs/pytest_tests1/conftest.py create mode 100644 pyfakefs/pytest_tests1/pytest_module_fixture_test.py diff --git a/.github/workflows/testsuite.yml b/.github/workflows/testsuite.yml index 462b0676..bda63380 100644 --- a/.github/workflows/testsuite.yml +++ b/.github/workflows/testsuite.yml @@ -135,10 +135,7 @@ jobs: shell: bash - name: Run pytest tests run: | - echo "$(python -m pytest pyfakefs/pytest_tests/pytest_plugin_failing_helper.py)" > ./testresult.txt pytest pyfakefs/pytest_tests - cd pyfakefs/pytest_tests/ns_package - pytest --log-cli-level=INFO test shell: bash dependency-check: diff --git a/pyfakefs/pytest_tests/pytest_module_fixture_test.py b/pyfakefs/pytest_tests/pytest_module_fixture_test.py index e7d30a49..c9035743 100644 --- a/pyfakefs/pytest_tests/pytest_module_fixture_test.py +++ b/pyfakefs/pytest_tests/pytest_module_fixture_test.py @@ -20,12 +20,14 @@ def use_fs(fs_module): yield fs_module +@pytest.mark.skip @pytest.mark.usefixtures("fs") def test_fs_uses_fs_module1(): # check that `fs` uses the same filesystem as `fs_module` assert os.path.exists(os.path.join("foo", "bar")) +@pytest.mark.skip def test_fs_uses_fs_module2(fs): # check that patching was not stopped by the first test assert os.path.exists(os.path.join("foo", "bar")) diff --git a/pyfakefs/pytest_tests1/__init__.py b/pyfakefs/pytest_tests1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pyfakefs/pytest_tests1/conftest.py b/pyfakefs/pytest_tests1/conftest.py new file mode 100644 index 00000000..d23dad2f --- /dev/null +++ b/pyfakefs/pytest_tests1/conftest.py @@ -0,0 +1,40 @@ +# 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 for a custom pytest fixture with an argument to Patcher. +# Use this as a template if you want to write your own pytest plugin +# with specific Patcher arguments. +# See `pytest_plugin.py` for more information. + +import pytest + +from pyfakefs.fake_filesystem_unittest import Patcher + +# import the fs fixture to be visible if pyfakefs is not installed +from pyfakefs.pytest_plugin import fs, fs_module # noqa: F401 + +from pyfakefs.pytest_tests import example # noqa: E402 + + +@pytest.fixture +def fs_reload_example(): + """Fake filesystem.""" + patcher = Patcher(modules_to_reload=[example]) + patcher.setUp() + yield patcher.fs + patcher.tearDown() + + +@pytest.fixture +def fake_filesystem(fs): # noqa: F811 + """Shows how to use an alias for the fs fixture.""" + yield fs diff --git a/pyfakefs/pytest_tests1/pytest_module_fixture_test.py b/pyfakefs/pytest_tests1/pytest_module_fixture_test.py new file mode 100644 index 00000000..e7d30a49 --- /dev/null +++ b/pyfakefs/pytest_tests1/pytest_module_fixture_test.py @@ -0,0 +1,31 @@ +# 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. +import os + +import pytest + + +@pytest.fixture(scope="module", autouse=True) +def use_fs(fs_module): + fs_module.create_file(os.path.join("foo", "bar")) + yield fs_module + + +@pytest.mark.usefixtures("fs") +def test_fs_uses_fs_module1(): + # check that `fs` uses the same filesystem as `fs_module` + assert os.path.exists(os.path.join("foo", "bar")) + + +def test_fs_uses_fs_module2(fs): + # check that patching was not stopped by the first test + assert os.path.exists(os.path.join("foo", "bar"))