예제 #1
0
 def test_cache_writefail_permissions(self, unwritable_cache_dir: Path,
                                      pytester: Pytester) -> None:
     pytester.makeini("[pytest]")
     config = pytester.parseconfigure()
     cache = config.cache
     assert cache is not None
     cache.set("test/broken", [])
예제 #2
0
 def test_cache_writefail_cachfile_silent(self, pytester: Pytester) -> None:
     pytester.makeini("[pytest]")
     pytester.path.joinpath(".pytest_cache").write_text("gone wrong")
     config = pytester.parseconfigure()
     cache = config.cache
     assert cache is not None
     cache.set("test/broken", [])
예제 #3
0
    def make_function(pytester: Pytester, **kwargs: Any) -> Any:
        from _pytest.fixtures import FixtureManager

        config = pytester.parseconfigure()
        session = pytester.Session.from_config(config)
        session._fixturemanager = FixtureManager(session)

        return pytest.Function.from_parent(parent=session, **kwargs)
예제 #4
0
    def test_config_cache_mkdir(self, pytester: Pytester) -> None:
        pytester.makeini("[pytest]")
        config = pytester.parseconfigure()
        assert config.cache is not None
        with pytest.raises(ValueError):
            config.cache.mkdir("key/name")

        p = config.cache.mkdir("name")
        assert p.is_dir()
예제 #5
0
 def test_config_cache_dataerror(self, pytester: Pytester) -> None:
     pytester.makeini("[pytest]")
     config = pytester.parseconfigure()
     assert config.cache is not None
     cache = config.cache
     pytest.raises(TypeError, lambda: cache.set("key/name", cache))
     config.cache.set("key/name", 0)
     config.cache._getvaluepath("key/name").write_bytes(b"123invalid")
     val = config.cache.get("key/name", -2)
     assert val == -2
예제 #6
0
 def test_do_option_postinitialize(self, pytester: Pytester) -> None:
     config = pytester.parseconfigure()
     assert not hasattr(config.option, "test123")
     p = pytester.makepyfile("""
         def pytest_addoption(parser):
             parser.addoption('--test123', action="store_true",
                 default=True)
     """)
     config.pluginmanager._importconftest(p, importmode="prepend")
     assert config.option.test123
예제 #7
0
 def test_lastfailed_xpass(self, pytester: Pytester) -> None:
     pytester.inline_runsource("""
         import pytest
         @pytest.mark.xfail
         def test_hello():
             assert 1
     """)
     config = pytester.parseconfigure()
     assert config.cache is not None
     lastfailed = config.cache.get("cache/lastfailed", -1)
     assert lastfailed == -1
예제 #8
0
 def test_cache_writefail_permissions(self, pytester: Pytester) -> None:
     pytester.makeini("[pytest]")
     cache_dir = pytester.path.joinpath(".pytest_cache")
     cache_dir.mkdir()
     mode = cache_dir.stat().st_mode
     cache_dir.chmod(0)
     try:
         config = pytester.parseconfigure()
         cache = config.cache
         assert cache is not None
         cache.set("test/broken", [])
     finally:
         cache_dir.chmod(mode)
예제 #9
0
 def get_cached_last_failed(self, pytester: Pytester) -> List[str]:
     config = pytester.parseconfigure()
     assert config.cache is not None
     return sorted(config.cache.get("cache/lastfailed", {}))
예제 #10
0
 def check_readme(self, pytester: Pytester) -> bool:
     config = pytester.parseconfigure()
     assert config.cache is not None
     readme = config.cache._cachedir.joinpath("README.md")
     return readme.is_file()