@@ -1138,3 +1138,33 @@ def test_succeed():
1138
1138
testdir .makepyfile (test_file )
1139
1139
rr = testdir .run (* cmd_opts , timeout = timeout )
1140
1140
assert_outcomes (rr , {"passed" : 1 })
1141
+
1142
+
1143
+ @pytest .mark .parametrize (argnames = "kill" , argvalues = [False , True ])
1144
+ @pytest .mark .parametrize (argnames = "event" , argvalues = ["shutdown" ])
1145
+ @pytest .mark .parametrize (argnames = "phase" , argvalues = ["before" , "during" , "after" ])
1146
+ def test_addSystemEventTrigger (testdir , cmd_opts , kill , event , phase ):
1147
+ test_string = "1kljgf90u0lkj13l4jjklsfdo89898y24hlkjalkjs38"
1148
+
1149
+ test_file = """
1150
+ import os
1151
+
1152
+ import pytest_twisted
1153
+
1154
+ def output_stuff():
1155
+ print({test_string!r})
1156
+
1157
+ @pytest_twisted.inlineCallbacks
1158
+ def test_succeed():
1159
+ from twisted.internet import reactor
1160
+ reactor.addSystemEventTrigger(phase={phase!r}, eventType={event!r}, callable=output_stuff)
1161
+
1162
+ if {kill!r}:
1163
+ os.kill(os.get_pid())
1164
+
1165
+ yield
1166
+ """ .format (kill = kill , event = event , phase = phase , test_string = test_string )
1167
+ testdir .makepyfile (test_file )
1168
+ rr = testdir .run (* cmd_opts , timeout = timeout )
1169
+ assert_outcomes (rr , {"passed" : 1 })
1170
+ rr .stdout .fnmatch_lines (lines2 = [test_string ])
0 commit comments