10
10
# https://docs.python.org/3/whatsnew/3.6.html#pep-525-asynchronous-generators
11
11
ASYNC_GENERATORS = sys .version_info >= (3 , 6 )
12
12
13
+ timeout = 15
14
+
13
15
14
16
# https://github.com/pytest-dev/pytest/issues/6505
15
17
def force_plural (name ):
@@ -87,7 +89,13 @@ def skip_if_no_async_generators():
87
89
@pytest .fixture
88
90
def cmd_opts (request ):
89
91
reactor = request .config .getoption ("reactor" , "default" )
90
- return ("--reactor={}" .format (reactor ),)
92
+ return (
93
+ sys .executable ,
94
+ "-m" ,
95
+ "pytest" ,
96
+ "-v" ,
97
+ "--reactor={}" .format (reactor ),
98
+ )
91
99
92
100
93
101
def test_inline_callbacks_in_pytest ():
@@ -117,7 +125,7 @@ def f():
117
125
yield 42
118
126
""" .format (import_path = import_path , decorator = decorator )
119
127
testdir .makepyfile (test_file )
120
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
128
+ rr = testdir .run (* cmd_opts , timeout = timeout )
121
129
122
130
expected_outcomes = {"passed" : 1 }
123
131
if should_warn :
@@ -161,7 +169,7 @@ def test_succeed(foo):
161
169
pass
162
170
""" .format (import_path = import_path , function = function )
163
171
testdir .makepyfile (test_file )
164
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
172
+ rr = testdir .run (* cmd_opts , timeout = timeout )
165
173
166
174
expected_outcomes = {"passed" : 1 }
167
175
if should_warn :
@@ -186,7 +194,7 @@ def doit():
186
194
return d
187
195
"""
188
196
testdir .makepyfile (test_file )
189
- rr = testdir .run (sys . executable , "-m" , "pytest" , * cmd_opts )
197
+ rr = testdir .run (* cmd_opts , timeout = timeout )
190
198
assert_outcomes (rr , {"failed" : 1 })
191
199
192
200
@@ -200,7 +208,7 @@ def test_succeed():
200
208
return d
201
209
"""
202
210
testdir .makepyfile (test_file )
203
- rr = testdir .run (sys . executable , "-m" , "pytest" , * cmd_opts )
211
+ rr = testdir .run (* cmd_opts , timeout = timeout )
204
212
assert_outcomes (rr , {"passed" : 1 })
205
213
206
214
@@ -212,7 +220,7 @@ def test_succeed():
212
220
return 42
213
221
"""
214
222
testdir .makepyfile (test_file )
215
- rr = testdir .run (sys . executable , "-m" , "pytest" , * cmd_opts )
223
+ rr = testdir .run (* cmd_opts , timeout = timeout )
216
224
assert_outcomes (rr , {"passed" : 1 })
217
225
218
226
@@ -222,7 +230,7 @@ def test_more_fail():
222
230
raise RuntimeError("foo")
223
231
"""
224
232
testdir .makepyfile (test_file )
225
- rr = testdir .run (sys . executable , "-m" , "pytest" , * cmd_opts )
233
+ rr = testdir .run (* cmd_opts , timeout = timeout )
226
234
assert_outcomes (rr , {"failed" : 1 })
227
235
228
236
@@ -243,7 +251,7 @@ def test_succeed(foo):
243
251
raise RuntimeError("baz")
244
252
"""
245
253
testdir .makepyfile (test_file )
246
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
254
+ rr = testdir .run (* cmd_opts , timeout = timeout )
247
255
assert_outcomes (rr , {"passed" : 2 , "failed" : 1 })
248
256
249
257
@@ -265,7 +273,7 @@ async def test_succeed(foo):
265
273
raise RuntimeError("baz")
266
274
"""
267
275
testdir .makepyfile (test_file )
268
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
276
+ rr = testdir .run (* cmd_opts , timeout = timeout )
269
277
assert_outcomes (rr , {"passed" : 2 , "failed" : 1 })
270
278
271
279
@@ -285,7 +293,7 @@ def test_MAIN():
285
293
assert MAIN is greenlet.getcurrent()
286
294
"""
287
295
testdir .makepyfile (test_file )
288
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
296
+ rr = testdir .run (* cmd_opts , timeout = timeout )
289
297
assert_outcomes (rr , {"passed" : 1 })
290
298
291
299
@@ -310,7 +318,7 @@ def test_succeed(foo):
310
318
raise RuntimeError("baz")
311
319
"""
312
320
testdir .makepyfile (test_file )
313
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
321
+ rr = testdir .run (* cmd_opts , timeout = timeout )
314
322
assert_outcomes (rr , {"passed" : 2 , "failed" : 1 })
315
323
316
324
@@ -336,7 +344,7 @@ async def test_succeed(foo):
336
344
raise RuntimeError("baz")
337
345
"""
338
346
testdir .makepyfile (test_file )
339
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
347
+ rr = testdir .run (* cmd_opts , timeout = timeout )
340
348
assert_outcomes (rr , {"passed" : 2 , "failed" : 1 })
341
349
342
350
@@ -372,7 +380,7 @@ def test_succeed_blue(foo):
372
380
raise RuntimeError("baz")
373
381
"""
374
382
testdir .makepyfile (test_file )
375
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
383
+ rr = testdir .run (* cmd_opts , timeout = timeout )
376
384
assert_outcomes (rr , {"passed" : 2 , "failed" : 1 })
377
385
378
386
@@ -409,7 +417,7 @@ def test_succeed(this, that):
409
417
testdir .makepyfile (test_file )
410
418
# TODO: add a timeout, failure just hangs indefinitely for now
411
419
# https://github.com/pytest-dev/pytest/issues/4073
412
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
420
+ rr = testdir .run (* cmd_opts , timeout = timeout )
413
421
assert_outcomes (rr , {"passed" : 1 })
414
422
415
423
@@ -448,7 +456,7 @@ def test_succeed(foo):
448
456
raise RuntimeError("baz")
449
457
"""
450
458
testdir .makepyfile (test_file )
451
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
459
+ rr = testdir .run (* cmd_opts , timeout = timeout )
452
460
# TODO: this is getting super imprecise...
453
461
assert_outcomes (rr , {"passed" : 4 , "failed" : 1 , "errors" : 2 })
454
462
@@ -497,7 +505,7 @@ def test_second(foo):
497
505
check_me = 2
498
506
"""
499
507
testdir .makepyfile (test_file )
500
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
508
+ rr = testdir .run (* cmd_opts , timeout = timeout )
501
509
assert_outcomes (rr , {"passed" : 2 })
502
510
503
511
@@ -526,7 +534,7 @@ async def test_doublefour(doublefour):
526
534
assert doublefour == 8
527
535
"""
528
536
testdir .makepyfile (test_file )
529
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
537
+ rr = testdir .run (* cmd_opts , timeout = timeout )
530
538
assert_outcomes (rr , {"passed" : 2 })
531
539
532
540
@@ -555,7 +563,7 @@ async def test_doublefour(doublefour):
555
563
assert doublefour == 8
556
564
"""
557
565
testdir .makepyfile (test_file )
558
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
566
+ rr = testdir .run (* cmd_opts , timeout = timeout )
559
567
assert_outcomes (rr , {"passed" : 2 })
560
568
561
569
@@ -602,7 +610,7 @@ async def test_doubleincrement(doubleincrement):
602
610
assert (first, second) == (0, 2)
603
611
""" .format (maybe_async = maybe_async , maybe_await = maybe_await )
604
612
testdir .makepyfile (test_file )
605
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
613
+ rr = testdir .run (* cmd_opts , timeout = timeout )
606
614
assert_outcomes (rr , {"passed" : 2 })
607
615
# assert_outcomes(rr, {"passed": 1})
608
616
@@ -650,7 +658,7 @@ async def test_doubleincrement(doubleincrement):
650
658
assert (first, second) == (0, 2)
651
659
""" .format (maybe_async = maybe_async , maybe_await = maybe_await )
652
660
testdir .makepyfile (test_file )
653
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
661
+ rr = testdir .run (* cmd_opts , timeout = timeout )
654
662
assert_outcomes (rr , {"passed" : 2 })
655
663
656
664
@@ -678,7 +686,7 @@ def test_succeed():
678
686
return d
679
687
"""
680
688
testdir .makepyfile (test_file )
681
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
689
+ rr = testdir .run (* cmd_opts , timeout = timeout )
682
690
assert_outcomes (rr , {"passed" : 1 })
683
691
684
692
@@ -695,7 +703,7 @@ def test_succeed():
695
703
pass
696
704
"""
697
705
testdir .makepyfile (test_file )
698
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
706
+ rr = testdir .run (* cmd_opts , timeout = timeout )
699
707
assert "WrongReactorAlreadyInstalledError" in rr .stderr .str ()
700
708
701
709
@@ -725,7 +733,7 @@ def test_succeed():
725
733
return d
726
734
"""
727
735
testdir .makepyfile (test_file )
728
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
736
+ rr = testdir .run (* cmd_opts , timeout = timeout )
729
737
assert_outcomes (rr , {"passed" : 1 })
730
738
731
739
@@ -742,11 +750,11 @@ def test_succeed():
742
750
pass
743
751
"""
744
752
testdir .makepyfile (test_file )
745
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
753
+ rr = testdir .run (* cmd_opts , timeout = timeout )
746
754
assert "WrongReactorAlreadyInstalledError" in rr .stderr .str ()
747
755
748
756
749
- def test_pytest_from_reactor_thread (testdir , request ):
757
+ def test_pytest_from_reactor_thread (testdir , cmd_opts , request ):
750
758
skip_if_reactor_not (request , "default" )
751
759
test_file = """
752
760
import pytest
@@ -794,10 +802,10 @@ def main():
794
802
"""
795
803
testdir .makepyfile (runner = runner_file )
796
804
# check test file is ok in standalone mode:
797
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" )
805
+ rr = testdir .run (* cmd_opts , timeout = timeout )
798
806
assert_outcomes (rr , {"passed" : 1 , "failed" : 1 })
799
807
# test embedded mode:
800
- assert testdir .run (sys .executable , "runner.py" ).ret == 0
808
+ assert testdir .run (sys .executable , "runner.py" , timeout = timeout ).ret == 0
801
809
802
810
803
811
def test_blockon_in_hook_with_asyncio (testdir , cmd_opts , request ):
@@ -829,7 +837,7 @@ def test_succeed():
829
837
return d
830
838
"""
831
839
testdir .makepyfile (test_file )
832
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
840
+ rr = testdir .run (* cmd_opts , timeout = timeout )
833
841
assert_outcomes (rr , {"passed" : 1 })
834
842
835
843
@@ -854,7 +862,7 @@ def test_succeed():
854
862
pass
855
863
"""
856
864
testdir .makepyfile (test_file )
857
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
865
+ rr = testdir .run (* cmd_opts , timeout = timeout )
858
866
assert "WrongReactorAlreadyInstalledError" in rr .stderr .str ()
859
867
860
868
@@ -902,5 +910,5 @@ def test_second(foo):
902
910
check_me = 3
903
911
"""
904
912
testdir .makepyfile (test_file )
905
- rr = testdir .run (sys . executable , "-m" , "pytest" , "-v" , * cmd_opts )
913
+ rr = testdir .run (* cmd_opts , timeout = timeout )
906
914
assert_outcomes (rr , {"passed" : 2 })
0 commit comments