@@ -131,3 +131,51 @@ def test_base_python_env_conflict_show_conf(tox_project: ToxProjectCreator, igno
131
131
f" base python py{ py_ver_next } '{ ',' if comma_in_exc else '' } )\n "
132
132
)
133
133
result .assert_out_err (out , "" )
134
+
135
+
136
+ def test_python_set_hash_seed (tox_project : ToxProjectCreator ) -> None :
137
+ ini = "[testenv]\n package=skip\n commands=python -c 'import os; print(os.environ[\" PYTHONHASHSEED\" ])'"
138
+ prj = tox_project ({"tox.ini" : ini })
139
+ result = prj .run ("r" , "-e" , "py" , "--hashseed" , "10" )
140
+ result .assert_success ()
141
+ assert result .out .splitlines ()[1 ] == "10"
142
+
143
+
144
+ def test_python_generate_hash_seed (tox_project : ToxProjectCreator ) -> None :
145
+ ini = "[testenv]\n package=skip\n commands=python -c 'import os; print(os.environ[\" PYTHONHASHSEED\" ])'"
146
+ prj = tox_project ({"tox.ini" : ini })
147
+ result = prj .run ("r" , "-e" , "py" )
148
+ result .assert_success ()
149
+ assert 1 <= int (result .out .splitlines ()[1 ]) <= (1024 if sys .platform == "win32" else 4294967295 )
150
+
151
+
152
+ def test_python_keep_hash_seed (tox_project : ToxProjectCreator ) -> None :
153
+ ini = """
154
+ [testenv]
155
+ package=skip
156
+ set_env=PYTHONHASHSEED=12
157
+ commands=python -c 'import os; print(os.environ["PYTHONHASHSEED"])'
158
+ """
159
+ result = tox_project ({"tox.ini" : ini }).run ("r" , "-e" , "py" )
160
+ result .assert_success ()
161
+ assert result .out .splitlines ()[1 ] == "12"
162
+
163
+
164
+ def test_python_disable_hash_seed (tox_project : ToxProjectCreator ) -> None :
165
+ ini = "[testenv]\n package=skip\n commands=python -c 'import os; print(os.environ.get(\" PYTHONHASHSEED\" ))'"
166
+ prj = tox_project ({"tox.ini" : ini })
167
+ result = prj .run ("r" , "-e" , "py" , "--hashseed" , "notset" )
168
+ result .assert_success ()
169
+ assert result .out .splitlines ()[1 ] == "None"
170
+
171
+
172
+ def test_python_set_hash_seed_negative (tox_project : ToxProjectCreator ) -> None :
173
+ result = tox_project ({"tox.ini" : "" }).run ("r" , "-e" , "py" , "--hashseed" , "-1" )
174
+ result .assert_failed (2 )
175
+ assert "tox run: error: argument --hashseed: must be greater than zero" in result .err
176
+
177
+
178
+ def test_python_set_hash_seed_incorrect (tox_project : ToxProjectCreator ) -> None :
179
+ result = tox_project ({"tox.ini" : "" }).run ("r" , "-e" , "py" , "--hashseed" , "ok" )
180
+ result .assert_failed (2 )
181
+ assert "tox run: error: argument --hashseed: invalid literal for int() with base 10: 'ok'" in result .err
0 commit comments