Route delivered HQ tracks to temporary road interception and refresh playtest packages
This commit is contained in:
@@ -331,20 +331,30 @@ class FailureGraceTests(unittest.TestCase):
|
||||
self.assertEqual(monitor.timeout_result(), 'timeout')
|
||||
|
||||
def test_grace_bounds_rejected_before_any_native_mutation(self):
|
||||
for grace in (-1, 31):
|
||||
for grace in (-1, 121):
|
||||
with self.subTest(grace=grace):
|
||||
with self.assertRaisesRegex(ValueError, 'failure-grace 0..30'):
|
||||
with self.assertRaisesRegex(ValueError, 'failure-grace 0..120'):
|
||||
runner.StartupMonitor(100, 180, 15, grace)
|
||||
class Args:
|
||||
steam=Path('/steam'); compat=Path('/compat'); profile=Path('/profile')
|
||||
timeout=180; settle=15; failure_grace=grace
|
||||
with patch.object(runner, 'assert_no_game') as processes, patch.object(runner.subprocess, 'Popen') as spawn:
|
||||
with self.assertRaisesRegex(ValueError, 'failure-grace 0..30'):
|
||||
with self.assertRaisesRegex(ValueError, 'failure-grace 0..120'):
|
||||
runner.run(Args())
|
||||
processes.assert_not_called(); spawn.assert_not_called()
|
||||
|
||||
def test_longer_diagnostic_grace_remains_failed_and_absolute_bounded(self):
|
||||
monitor = runner.StartupMonitor(100, 180, 15, 120)
|
||||
self.assertIsNone(monitor.observe({'failed': True}, 105))
|
||||
self.assertIsNone(monitor.observe({'ready': True}, 224))
|
||||
self.assertEqual(monitor.observe({'ready': True}, 225), 'game-failed')
|
||||
self.assertFalse(monitor.annotate({'ready': True})['ready'])
|
||||
monitor = runner.StartupMonitor(100, 60, 15, 120)
|
||||
self.assertIsNone(monitor.observe({'failed': True}, 159))
|
||||
self.assertEqual(monitor.observe({'ready': True}, 160), 'game-failed')
|
||||
|
||||
def test_cli_default_and_explicit_grace(self):
|
||||
for extra, expected in (([], 0), (['--failure-grace', '30'], 30)):
|
||||
for extra, expected in (([], 0), (['--failure-grace', '30'], 30), (['--failure-grace', '120'], 120)):
|
||||
with self.subTest(extra=extra), patch.object(sys, 'argv', ['headless_game.py', '--compat', '/unused', *extra]):
|
||||
with patch.object(runner, 'run', return_value=1) as run:
|
||||
self.assertEqual(runner.main(), 1)
|
||||
|
||||
Reference in New Issue
Block a user