From f31b954bd7706ccaef7dcb56a326bd470c063955 Mon Sep 17 00:00:00 2001 From: Storsorken Date: Sun, 5 Mar 2023 20:20:26 +0100 Subject: [PATCH 1/3] tests: #11 add test for invalid argument Tests invalid argument to start method in ExtendedLoopingCall class throws ValueError --- evennia/scripts/tests.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/evennia/scripts/tests.py b/evennia/scripts/tests.py index 51a244a1c9..aa0b97d1ec 100644 --- a/evennia/scripts/tests.py +++ b/evennia/scripts/tests.py @@ -143,6 +143,13 @@ class TestExtendedLoopingCall(TestCase): self.assertEqual(loopcall.interval, 20) loopcall._scheduleFrom.assert_called_with(121) + def test_start_invalid_interval(self): + """ Test the .start method with interval less than zero """ + with self.assertRaises(ValueError): + callback = mock.MagicMock() + loopcall = ExtendedLoopingCall(callback) + loopcall.start(-1, now=True, start_delay=None, count_start=1) + def dummy_func(): return 0 class TestMonitorHandler(TestCase): From d044e31f08af58bc90584996ca5cf9848e2fed01 Mon Sep 17 00:00:00 2001 From: Storsorken Date: Sun, 5 Mar 2023 20:43:14 +0100 Subject: [PATCH 2/3] tests: #11 add test for __call__ Add test for __call__ in ExtendedLoopingCall class Test __call__ modifies start_delay and starttime if start_delay was previously set --- evennia/scripts/tests.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/evennia/scripts/tests.py b/evennia/scripts/tests.py index aa0b97d1ec..e8e4868a3f 100644 --- a/evennia/scripts/tests.py +++ b/evennia/scripts/tests.py @@ -150,6 +150,19 @@ class TestExtendedLoopingCall(TestCase): loopcall = ExtendedLoopingCall(callback) loopcall.start(-1, now=True, start_delay=None, count_start=1) + def test__call__when_delay(self): + """ Test __call__ modifies start_delay and starttime if start_delay was previously set """ + callback = mock.MagicMock() + loopcall = ExtendedLoopingCall(callback) + loopcall.clock.seconds = mock.MagicMock(return_value=1) + loopcall.start_delay = 2 + loopcall.starttime = 0 + + loopcall() + + self.assertEqual(loopcall.start_delay, None) + self.assertEqual(loopcall.starttime, 1) + def dummy_func(): return 0 class TestMonitorHandler(TestCase): From 2e4bced35140f49fe38e3773eb482800e380cc2f Mon Sep 17 00:00:00 2001 From: Storsorken Date: Mon, 6 Mar 2023 01:24:22 +0100 Subject: [PATCH 3/3] Tests: #11 test force_repeat Test forcing script to run that is scheduled to run in the future --- evennia/scripts/tests.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/evennia/scripts/tests.py b/evennia/scripts/tests.py index e8e4868a3f..00d3b3de67 100644 --- a/evennia/scripts/tests.py +++ b/evennia/scripts/tests.py @@ -163,6 +163,17 @@ class TestExtendedLoopingCall(TestCase): self.assertEqual(loopcall.start_delay, None) self.assertEqual(loopcall.starttime, 1) + def test_force_repeat(self): + """ Test forcing script to run that is scheduled to run in the future """ + callback = mock.MagicMock() + loopcall = ExtendedLoopingCall(callback) + loopcall.clock.seconds = mock.MagicMock(return_value=0) + + loopcall.start(20, now=False, start_delay=5, count_start=0) + loopcall.force_repeat() + + callback.assert_called_once() + def dummy_func(): return 0 class TestMonitorHandler(TestCase):