From 0bc151642bacac5dc5621db8cbccf9025554f4ee Mon Sep 17 00:00:00 2001 From: Zac-HD Date: Mon, 8 Nov 2021 21:35:40 +1100 Subject: [PATCH] Create test --- .../pytest/test_no_plugin_side_effects.py | 45 +++++++++++++++++++ 1 file changed, 45 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..b31784f020 --- /dev/null +++ b/hypothesis-python/tests/pytest/test_no_plugin_side_effects.py @@ -0,0 +1,45 @@ +# 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 = """ +from hypothesis import given, strategies as st + +def test(): + pass +""" +WRITES_CHARMAP = """ +from hypothesis import given, strategies as st + +@given(st.text()) +def test(s): + pass +""" + + +def test_does_not_create_dir_unless_actually_using_hypothesis(tmp_path): + pyfile = tmp_path / "test.py" + env = {**os.environ, "HYPOTHESIS_STORAGE_DIRECTORY": ".hypothesis"} + expected = {"test.py", ".pytest_cache"} + + pyfile.write_text(DOES_NOT_WRITE_CHARMAP) + subprocess.check_call(["pytest", "test.py"], env=env, cwd=tmp_path) + assert {p.name for p in tmp_path.iterdir()} == expected + + pyfile.write_text(WRITES_CHARMAP) + subprocess.check_call(["pytest", "test.py"], env=env, cwd=tmp_path) + assert {p.name for p in tmp_path.iterdir()} == expected | {".hypothesis"}