From e6cbffdb1c4057466018ecbacf3ff7e2107dedfa Mon Sep 17 00:00:00 2001 From: Zac-HD Date: Mon, 8 Nov 2021 21:35:40 +1100 Subject: [PATCH 1/2] Create test --- .../pytest/test_no_plugin_side_effects.py | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 hypothesis-python/tests/pytest/test_no_plugin_side_effects.py diff --git a/hypothesis-python/tests/pytest/test_no_plugin_side_effects.py b/hypothesis-python/tests/pytest/test_no_plugin_side_effects.py new file mode 100644 index 0000000000..082100c13b --- /dev/null +++ b/hypothesis-python/tests/pytest/test_no_plugin_side_effects.py @@ -0,0 +1,50 @@ +# This file is part of Hypothesis, which may be found at +# https://github.com/HypothesisWorks/hypothesis/ +# +# Most of this work is copyright (C) 2013-2021 David R. MacIver +# (david@drmaciver.com), but it contains contributions by others. See +# CONTRIBUTING.rst for a full list of people who may hold copyright, and +# consult the git log if you need to determine who owns an individual +# contribution. +# +# This Source Code Form is subject to the terms of the Mozilla Public License, +# v. 2.0. If a copy of the MPL was not distributed with this file, You can +# obtain one at https://mozilla.org/MPL/2.0/. +# +# END HEADER + +import os +import subprocess + +DOES_NOT_WRITE_CHARMAP = """ +import hypothesis.core + +assert hypothesis.core.running_under_pytest + +def test(): + pass +""" +WRITES_CHARMAP = """ +from hypothesis import given, strategies as st + +@given(st.text()) +def test_property(s): + pass +""" + + +def names(path): + return {p.name for p in path.iterdir()} - {"__pycache__", ".pytest_cache"} + + +def test_does_not_create_dir_unless_actually_using_hypothesis(tmp_path): + pyfile = tmp_path / "test.py" + env = {**os.environ, "HYPOTHESIS_STORAGE_DIRECTORY": ".hypothesis"} + + pyfile.write_text(DOES_NOT_WRITE_CHARMAP) + subprocess.check_call(["pytest", "test.py"], env=env, cwd=tmp_path) + assert names(tmp_path) == {"test.py"} + + pyfile.write_text(DOES_NOT_WRITE_CHARMAP + WRITES_CHARMAP) + subprocess.check_call(["pytest", "test.py"], env=env, cwd=tmp_path) + assert names(tmp_path) == {"test.py", ".hypothesis"} From 2d773d0a10f9f8d273f17718c83395f7841b6377 Mon Sep 17 00:00:00 2001 From: Zac-HD Date: Mon, 8 Nov 2021 22:40:27 +1100 Subject: [PATCH 2/2] Increase test timeout We sometimes get slow OSX CI workers. --- hypothesis-python/tests/cover/test_example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hypothesis-python/tests/cover/test_example.py b/hypothesis-python/tests/cover/test_example.py index 8a82e93708..dc0ccb2807 100644 --- a/hypothesis-python/tests/cover/test_example.py +++ b/hypothesis-python/tests/cover/test_example.py @@ -79,7 +79,7 @@ def test_non_interactive_example_emits_warning(): def test_interactive_example_does_not_emit_warning(): try: child = pexpect.spawn(f"{sys.executable} -Werror") - child.expect(">>> ", timeout=1) + child.expect(">>> ", timeout=10) except pexpect.exceptions.EOF: pytest.skip( "Unable to run python with -Werror. This may be because you are "