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", [])
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", [])
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)
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()
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
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
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
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)
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", {}))
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()