From c2c375b972d2aee9207adebaecc8433928c44ffb Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:50:14 +0100 Subject: [PATCH 01/54] test file for register --- django_scheduled_tasks/tests/test_register.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 django_scheduled_tasks/tests/test_register.py diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py new file mode 100644 index 0000000..91b82c3 --- /dev/null +++ b/django_scheduled_tasks/tests/test_register.py @@ -0,0 +1,3 @@ +from django_scheduled_tasks.models import ScheduledTask + +class RegisterTaskTest(): \ No newline at end of file From 1c6a0d99daabd28aad77f2dcb2a3a8e07ff12fcd Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:28:52 +0100 Subject: [PATCH 02/54] testing wrapper --- django_scheduled_tasks/tests/test_register.py | 63 ++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 91b82c3..912d11d 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -1,3 +1,64 @@ from django_scheduled_tasks.models import ScheduledTask +from django_scheduled_tasks.register import register_task +from django.test import TestCase +from unittest.mock import patch +from unittest.mock import Mock +from logging import getLogger + +# def fake_task(): +# "DISABLE_SCHEDULED_TASKS" == True + + +class RegisterTaskTest(TestCase): + """Example test case, testing the wrapper function.""" + + def test_wrapper(self): + """Checks that the register is empty, and then creates an object.""" + + self.assertFalse(ScheduledTask.objects.all().exists()) + + @register_task(1) + def dummy(): + pass + + self.assertEqual(ScheduledTask.objects.count(), 1) + st = ScheduledTask.objects.first() + self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy") + + @patch('django_scheduled_tasks.register.settings', DISABLE_SCHEDULED_TASKS=True) + def test_register_task_with_disable_register_task(self, mock_settings): + """Uses settings to disable scheduled tasks.""" + @register_task(1) + def dummy(): + pass + + self.assertFalse(ScheduledTask.objects.all().exists()) + + @patch('django_scheduled_tasks.register.sys', argv=['test']) + def test_resgister_task_with_skipped_args(self, mock_sys_arg): + """Uses system to skip task.""" + @register_task(1) + def dummy(): + pass + + self.assertFalse(ScheduledTask.objects.all().exists()) + + # @Mock('django_scheduled_tasks.tests.test_register.dummy', side_effect=) + # def test_integrity(self): + + # @register_task(1) + # def dummy(): + # pass + + # @register_task(1) + # def dummy(): + # pass + + # self.assertEqual(ScheduledTask.objects.count(), 1) + + + # st = ScheduledTask.objects.first() + # self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy") + + -class RegisterTaskTest(): \ No newline at end of file From 4e0ce79648331787369f515cd3fca88a1f07ccbf Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:34:01 +0100 Subject: [PATCH 03/54] testing wrapper --- django_scheduled_tasks/tests/test_register.py | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 912d11d..5aebb80 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -1,12 +1,7 @@ -from django_scheduled_tasks.models import ScheduledTask +from django_scheduled_tasks.models import ScheduledTask from django_scheduled_tasks.register import register_task from django.test import TestCase from unittest.mock import patch -from unittest.mock import Mock -from logging import getLogger - -# def fake_task(): -# "DISABLE_SCHEDULED_TASKS" == True class RegisterTaskTest(TestCase): @@ -58,7 +53,4 @@ def dummy(): # st = ScheduledTask.objects.first() - # self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy") - - - + # self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy") \ No newline at end of file From 2c751c05dd601d2b1e0fdc74ef25279b071a1924 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:37:03 +0100 Subject: [PATCH 04/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 5aebb80..fa60d69 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -49,8 +49,7 @@ def dummy(): # def dummy(): # pass - # self.assertEqual(ScheduledTask.objects.count(), 1) + #self.assertEqual(ScheduledTask.objects.count(), 1) - - # st = ScheduledTask.objects.first() - # self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy") \ No newline at end of file + #st = ScheduledTask.objects.first() + #self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy") From 87b1f92f0240dfe0f8afa55e233c573e3eba51c3 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:40:00 +0100 Subject: [PATCH 05/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index fa60d69..93a1adc 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -9,7 +9,6 @@ class RegisterTaskTest(TestCase): def test_wrapper(self): """Checks that the register is empty, and then creates an object.""" - self.assertFalse(ScheduledTask.objects.all().exists()) @register_task(1) @@ -49,7 +48,7 @@ def dummy(): # def dummy(): # pass - #self.assertEqual(ScheduledTask.objects.count(), 1) + '''self.assertEqual(ScheduledTask.objects.count(), 1) - #st = ScheduledTask.objects.first() - #self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy") + st = ScheduledTask.objects.first() + self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy")''' From 51d38f49bec5e869c2217a5cfe12f191d3a4419f Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:42:05 +0100 Subject: [PATCH 06/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 1 + 1 file changed, 1 insertion(+) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 93a1adc..52e8853 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -1,3 +1,4 @@ +"""Example test case.""" from django_scheduled_tasks.models import ScheduledTask from django_scheduled_tasks.register import register_task from django.test import TestCase From 177189db5697ae772fc1f98ca915d5fef0b56027 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:31:24 +0100 Subject: [PATCH 07/54] Update django_scheduled_tasks/tests/test_register.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_register.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 52e8853..e964c60 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -8,7 +8,7 @@ class RegisterTaskTest(TestCase): """Example test case, testing the wrapper function.""" - def test_wrapper(self): + def test_register_task(self): """Checks that the register is empty, and then creates an object.""" self.assertFalse(ScheduledTask.objects.all().exists()) From db39bc58da98d1cd0f936d6b88f2edc6dd729373 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:31:43 +0100 Subject: [PATCH 08/54] Update django_scheduled_tasks/tests/test_register.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_register.py | 1 - 1 file changed, 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index e964c60..82e3b2e 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -11,7 +11,6 @@ class RegisterTaskTest(TestCase): def test_register_task(self): """Checks that the register is empty, and then creates an object.""" self.assertFalse(ScheduledTask.objects.all().exists()) - @register_task(1) def dummy(): pass From 7ce79c9b38c34bebd2de6ee97ad4a4f211ff8c46 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:31:58 +0100 Subject: [PATCH 09/54] Update django_scheduled_tasks/tests/test_register.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_register.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 82e3b2e..4120d46 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -6,7 +6,7 @@ class RegisterTaskTest(TestCase): - """Example test case, testing the wrapper function.""" + """Test case for the `register_task` wrapper.""" def test_register_task(self): """Checks that the register is empty, and then creates an object.""" From cc4272bfe7b5d98c3a90670f5b18afc519f360c6 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:32:46 +0100 Subject: [PATCH 10/54] Update django_scheduled_tasks/tests/test_register.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_register.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 4120d46..c27d88a 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -37,18 +37,3 @@ def dummy(): self.assertFalse(ScheduledTask.objects.all().exists()) - # @Mock('django_scheduled_tasks.tests.test_register.dummy', side_effect=) - # def test_integrity(self): - - # @register_task(1) - # def dummy(): - # pass - - # @register_task(1) - # def dummy(): - # pass - - '''self.assertEqual(ScheduledTask.objects.count(), 1) - - st = ScheduledTask.objects.first() - self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy")''' From 4a43b402aec13d0c0c21ccaf0e1e29f75c4fcf7f Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:33:01 +0100 Subject: [PATCH 11/54] Update django_scheduled_tasks/tests/test_register.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_register.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index c27d88a..0c7c7ec 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -21,7 +21,7 @@ def dummy(): @patch('django_scheduled_tasks.register.settings', DISABLE_SCHEDULED_TASKS=True) def test_register_task_with_disable_register_task(self, mock_settings): - """Uses settings to disable scheduled tasks.""" + """Tests that disabling in settings correctly stops a task form being registered.""" @register_task(1) def dummy(): pass From 7d207ec3354d67bc1694d6f88f08aea8915d8c51 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:33:35 +0100 Subject: [PATCH 12/54] Update django_scheduled_tasks/tests/test_register.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_register.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 0c7c7ec..ae87792 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -30,7 +30,7 @@ def dummy(): @patch('django_scheduled_tasks.register.sys', argv=['test']) def test_resgister_task_with_skipped_args(self, mock_sys_arg): - """Uses system to skip task.""" + """Tests that running with `test` argument stops a task form being registered.""" @register_task(1) def dummy(): pass From 91517728697f2562b38dbc4b3e890fcbacbad874 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:02:59 +0100 Subject: [PATCH 13/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 1 + 1 file changed, 1 insertion(+) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 52e8853..6b1215f 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -53,3 +53,4 @@ def dummy(): st = ScheduledTask.objects.first() self.assertEqual(st.func, "django_scheduled_tasks.tests.test_register.dummy")''' + \ No newline at end of file From 59a7d4d62dca87ece2949f37ee80b1b4b67f5ec1 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:10:57 +0100 Subject: [PATCH 14/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index b5a3d0c..9fc3bb8 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -11,6 +11,7 @@ class RegisterTaskTest(TestCase): def test_register_task(self): """Checks that the register is empty, and then creates an object.""" self.assertFalse(ScheduledTask.objects.all().exists()) + @register_task(1) def dummy(): pass @@ -35,4 +36,5 @@ def test_resgister_task_with_skipped_args(self, mock_sys_arg): def dummy(): pass - self.assertFalse(ScheduledTask.objects.all().exists()) \ No newline at end of file + self.assertFalse(ScheduledTask.objects.all().exists()) + \ No newline at end of file From b347ab3c44d243dec10e132f5682223ea5ea6068 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:13:16 +0100 Subject: [PATCH 15/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 9fc3bb8..a85a055 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -11,7 +11,7 @@ class RegisterTaskTest(TestCase): def test_register_task(self): """Checks that the register is empty, and then creates an object.""" self.assertFalse(ScheduledTask.objects.all().exists()) - + @register_task(1) def dummy(): pass @@ -36,5 +36,4 @@ def test_resgister_task_with_skipped_args(self, mock_sys_arg): def dummy(): pass - self.assertFalse(ScheduledTask.objects.all().exists()) - \ No newline at end of file + self.assertFalse(ScheduledTask.objects.all().exists()) \ No newline at end of file From c6a567264ce2dc76ed44c6d1b95484c621fe7669 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:16:01 +0100 Subject: [PATCH 16/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index a85a055..200bfd9 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -11,7 +11,7 @@ class RegisterTaskTest(TestCase): def test_register_task(self): """Checks that the register is empty, and then creates an object.""" self.assertFalse(ScheduledTask.objects.all().exists()) - + @register_task(1) def dummy(): pass @@ -36,4 +36,4 @@ def test_resgister_task_with_skipped_args(self, mock_sys_arg): def dummy(): pass - self.assertFalse(ScheduledTask.objects.all().exists()) \ No newline at end of file + self.assertFalse(ScheduledTask.objects.all().exists()) From b4b7f89e39c662330dcd7f8ca7775832f12e1a62 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:17:47 +0100 Subject: [PATCH 17/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 1 + 1 file changed, 1 insertion(+) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 200bfd9..d73e80e 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -37,3 +37,4 @@ def dummy(): pass self.assertFalse(ScheduledTask.objects.all().exists()) +# this is a newline. \ No newline at end of file From cc884c54f1ad1cfbda843ec5644186e75fd51133 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:19:29 +0100 Subject: [PATCH 18/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index d73e80e..23ab152 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -36,5 +36,5 @@ def test_resgister_task_with_skipped_args(self, mock_sys_arg): def dummy(): pass - self.assertFalse(ScheduledTask.objects.all().exists()) -# this is a newline. \ No newline at end of file + self.assertFalse(ScheduledTask.objects.all().exists()) + \ No newline at end of file From e9293ea687cd2a92954c1ef631f11a7fbc516265 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:21:46 +0100 Subject: [PATCH 19/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 23ab152..1afd997 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -36,5 +36,5 @@ def test_resgister_task_with_skipped_args(self, mock_sys_arg): def dummy(): pass - self.assertFalse(ScheduledTask.objects.all().exists()) - \ No newline at end of file + self.assertFalse(ScheduledTask.objects.all().exists()) + \ No newline at end of file From 6d4d73e30de6f00e68e75fb513e6abfca0763b33 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:23:15 +0100 Subject: [PATCH 20/54] fixing flex8 --- django_scheduled_tasks/tests/test_register.py | 1 - 1 file changed, 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 1afd997..200bfd9 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -37,4 +37,3 @@ def dummy(): pass self.assertFalse(ScheduledTask.objects.all().exists()) - \ No newline at end of file From be9265b56afbfdb13c14ac7728838e81e190e25b Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Thu, 22 Aug 2024 15:25:07 +0100 Subject: [PATCH 21/54] Update django_scheduled_tasks/tests/test_register.py --- django_scheduled_tasks/tests/test_register.py | 1 + 1 file changed, 1 insertion(+) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 200bfd9..910c8be 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -37,3 +37,4 @@ def dummy(): pass self.assertFalse(ScheduledTask.objects.all().exists()) + From 0b905a7b2384e8cfad0f40a828ec80b009ad8403 Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Thu, 22 Aug 2024 15:31:08 +0100 Subject: [PATCH 22/54] whitespace --- django_scheduled_tasks/tests/test_register.py | 1 - 1 file changed, 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 910c8be..200bfd9 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -37,4 +37,3 @@ def dummy(): pass self.assertFalse(ScheduledTask.objects.all().exists()) - From 482abeb716f2afa19638ecca46b349723c52fa1e Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Thu, 22 Aug 2024 15:56:53 +0100 Subject: [PATCH 23/54] init --- django_scheduled_tasks/register.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index adfad13..8e9f640 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -15,6 +15,9 @@ logger = logging.getLogger(__name__) +DEFAULT_SCHEDULE_HOUR = 2 + + def register_task(interval, onstart=False): """ Register a scheduled task via this decorator. @@ -45,3 +48,14 @@ def wrapper(func): return func return wrapper + + +def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): + """Add a scheduled task for a specific day of the week. + + Args: + day (int): Day of the week, indexing from 0 in Monday. + hour (int, optional): Hour of the day, 24-hour clock, defaults to `DEFAULT_SCHEDULE_HOUR`. + onstart (bool, optional): Should this be run at startup, defaults to `False`. + """ + pass From acd90baf8dcd090da5468ede635b0e8f876275ee Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Fri, 23 Aug 2024 10:11:36 +0100 Subject: [PATCH 24/54] planning how im going to make the function --- django_scheduled_tasks/register.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index 8e9f640..bc05448 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -58,4 +58,10 @@ def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): hour (int, optional): Hour of the day, 24-hour clock, defaults to `DEFAULT_SCHEDULE_HOUR`. onstart (bool, optional): Should this be run at startup, defaults to `False`. """ + + """will be calling the register task function + adding the day and time into the ScheduledTask.objects.create(..., day, hour), + do i add these new variables into models.py? + + test should be doing the wrong date/time to see if it still goes through """ pass From ac9fe9e4823cf9c2a54a0331123a0bab3e91b11a Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Mon, 19 Aug 2024 11:37:11 +0100 Subject: [PATCH 25/54] renamed dummy test file --- django_scheduled_tasks/tests/{test_fake.py => test_models.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename django_scheduled_tasks/tests/{test_fake.py => test_models.py} (100%) diff --git a/django_scheduled_tasks/tests/test_fake.py b/django_scheduled_tasks/tests/test_models.py similarity index 100% rename from django_scheduled_tasks/tests/test_fake.py rename to django_scheduled_tasks/tests/test_models.py From 08e0f3c1b7c5fc7d1963aea8181751a3c4093d20 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:27:23 +0100 Subject: [PATCH 26/54] tests added for scheduled tasks --- django_scheduled_tasks/tests/test_models.py | 37 ++++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index e24432d..c4b03a2 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -1,10 +1,37 @@ """Example test case.""" from django.test import TestCase +from django_scheduled_tasks.models import ScheduledTask +IS_EXECUTED = False -class FakeTestCase(TestCase): - """Example test case.""" +def test_func(): + """if the test is correctly executed, it will then pass as True """ + IS_EXECUTED = True - def test_fake(self): - """Test method to validate a 'fake' assertion.""" - self.assertEqual(1, 1) + +class ScheduledTaskCase(TestCase): + """Example test case, testing the three functions (execute, str, save) in the Models module""" + + @classmethod + def setUpTestData(cls): + """ example object being used in each test """ + cls.t1 = ScheduledTask.objects.create( + func='django_scheduled_tasks.tests.test_models.test_func', + interval_minutes=10 + ) + + def test_str(self): + """ inserting the test obj into the answer string and seeing if it equals the same as the real result """ + self.assertEqual( + str(self.t1), + f"Run {self.t1.func} every {self.t1.interval_minutes} minutes ({'enabled' if self.t1.enabled else 'disabled'})" + ) + + def test_execute(self): + """ runs the execute function and changes IS_EXECUTED to True when ran correctly """ + + self.assertFalse(IS_EXECUTED) + self.t1.execute() + self.assertTrue(IS_EXECUTED) + + From d6a54ee5e83a0451ed62d4f1fb0731b13cb13d05 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:37:53 +0100 Subject: [PATCH 27/54] Add test print --- django_scheduled_tasks/tests/test_models.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index c4b03a2..7bc99fe 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -4,31 +4,33 @@ IS_EXECUTED = False + def test_func(): - """if the test is correctly executed, it will then pass as True """ + """if the test is correctly executed, it will then pass as True.""" IS_EXECUTED = True + print("here") class ScheduledTaskCase(TestCase): - """Example test case, testing the three functions (execute, str, save) in the Models module""" + """Example test case, testing the three functions (execute, str, save) in the Models module.""" @classmethod def setUpTestData(cls): - """ example object being used in each test """ + """Example object being used in each test.""" cls.t1 = ScheduledTask.objects.create( func='django_scheduled_tasks.tests.test_models.test_func', interval_minutes=10 ) def test_str(self): - """ inserting the test obj into the answer string and seeing if it equals the same as the real result """ + """Inserting the test obj into the answer string and seeing if it equals the same as the real result.""" self.assertEqual( str(self.t1), f"Run {self.t1.func} every {self.t1.interval_minutes} minutes ({'enabled' if self.t1.enabled else 'disabled'})" ) def test_execute(self): - """ runs the execute function and changes IS_EXECUTED to True when ran correctly """ + """Runs the execute function and changes IS_EXECUTED to True when ran correctly.""" self.assertFalse(IS_EXECUTED) self.t1.execute() From 368807c0977048df0bdc642389428d82c5dbd769 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Mon, 19 Aug 2024 16:50:50 +0100 Subject: [PATCH 28/54] use patch --- django_scheduled_tasks/tests/test_models.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 7bc99fe..ecb3d97 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -1,14 +1,12 @@ """Example test case.""" from django.test import TestCase from django_scheduled_tasks.models import ScheduledTask - -IS_EXECUTED = False +from unittest.mock import patch def test_func(): - """if the test is correctly executed, it will then pass as True.""" - IS_EXECUTED = True - print("here") + """If the test is correctly executed, it will then pass as True.""" + pass class ScheduledTaskCase(TestCase): @@ -29,11 +27,14 @@ def test_str(self): f"Run {self.t1.func} every {self.t1.interval_minutes} minutes ({'enabled' if self.t1.enabled else 'disabled'})" ) - def test_execute(self): + @patch('django_scheduled_tasks.tests.test_models.test_func') + def test_execute(self, mock_test_func): """Runs the execute function and changes IS_EXECUTED to True when ran correctly.""" - - self.assertFalse(IS_EXECUTED) self.t1.execute() - self.assertTrue(IS_EXECUTED) + mock_test_func.assert_called_once() + + + + # see if the global var is called self.t1.execute and see if func has been called From e8cc4cea9af0f82f920d57d30d878418d0b2102b Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 09:52:33 +0100 Subject: [PATCH 29/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index ecb3d97..d720387 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -5,7 +5,7 @@ def test_func(): - """If the test is correctly executed, it will then pass as True.""" + """If the test is correctly executed, it will then pass as True.""" pass @@ -14,27 +14,22 @@ class ScheduledTaskCase(TestCase): @classmethod def setUpTestData(cls): - """Example object being used in each test.""" + """Example object being used in each test.""" cls.t1 = ScheduledTask.objects.create( func='django_scheduled_tasks.tests.test_models.test_func', interval_minutes=10 ) def test_str(self): - """Inserting the test obj into the answer string and seeing if it equals the same as the real result.""" + """Inserting the test obj into the answer string and seeing if it equals the same as the real result.""" self.assertEqual( str(self.t1), f"Run {self.t1.func} every {self.t1.interval_minutes} minutes ({'enabled' if self.t1.enabled else 'disabled'})" ) @patch('django_scheduled_tasks.tests.test_models.test_func') - def test_execute(self, mock_test_func): - """Runs the execute function and changes IS_EXECUTED to True when ran correctly.""" + def test_execute(self, mock_test_func): + """Runs the execute function and changes IS_EXECUTED to True when ran correctly.""" self.t1.execute() mock_test_func.assert_called_once() - - - - # see if the global var is called self.t1.execute and see if func has been called - - + \ No newline at end of file From 13ecb989d801c49946c32cb49483f9712b648c4e Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 09:57:54 +0100 Subject: [PATCH 30/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index d720387..7660207 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -24,12 +24,12 @@ def test_str(self): """Inserting the test obj into the answer string and seeing if it equals the same as the real result.""" self.assertEqual( str(self.t1), - f"Run {self.t1.func} every {self.t1.interval_minutes} minutes ({'enabled' if self.t1.enabled else 'disabled'})" + f"Run {self.t1.func} every {self.t1.interval_minutes} minutes + ({'enabled' if self.t1.enabled else 'disabled'})" ) @patch('django_scheduled_tasks.tests.test_models.test_func') def test_execute(self, mock_test_func): """Runs the execute function and changes IS_EXECUTED to True when ran correctly.""" self.t1.execute() - mock_test_func.assert_called_once() - \ No newline at end of file + mock_test_func.assert_called_once() \ No newline at end of file From 77bcd5b34dff5d1c9a02e1cd0fd83e78c10c756e Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:00:18 +0100 Subject: [PATCH 31/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 7660207..92f6ffd 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -25,7 +25,7 @@ def test_str(self): self.assertEqual( str(self.t1), f"Run {self.t1.func} every {self.t1.interval_minutes} minutes - ({'enabled' if self.t1.enabled else 'disabled'})" + ({'enabled' if self.t1.enabled else 'disabled'})" ) @patch('django_scheduled_tasks.tests.test_models.test_func') From 0358efa2c015c707fa9b9f06807d8826755eed11 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:03:02 +0100 Subject: [PATCH 32/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 92f6ffd..6e71f20 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -24,7 +24,7 @@ def test_str(self): """Inserting the test obj into the answer string and seeing if it equals the same as the real result.""" self.assertEqual( str(self.t1), - f"Run {self.t1.func} every {self.t1.interval_minutes} minutes + f"Run {self.t1.func} every {self.t1.interval_minutes} minutes \ ({'enabled' if self.t1.enabled else 'disabled'})" ) From 3f76f078a441d374847275b76bad40824a045d26 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:10:25 +0100 Subject: [PATCH 33/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 6e71f20..76fbd87 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -24,8 +24,8 @@ def test_str(self): """Inserting the test obj into the answer string and seeing if it equals the same as the real result.""" self.assertEqual( str(self.t1), - f"Run {self.t1.func} every {self.t1.interval_minutes} minutes \ - ({'enabled' if self.t1.enabled else 'disabled'})" + f"Run {self.t1.func} every {self.t1.interval_minutes} minutes" + f" ({'enabled' if self.t1.enabled else 'disabled'})" ) @patch('django_scheduled_tasks.tests.test_models.test_func') From 9d55d4664c693b128f6c05798992e12dcf20b377 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:17:25 +0100 Subject: [PATCH 34/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 76fbd87..19e2f35 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -14,7 +14,7 @@ class ScheduledTaskCase(TestCase): @classmethod def setUpTestData(cls): - """Example object being used in each test.""" + """Creates object to be used during testing.""" cls.t1 = ScheduledTask.objects.create( func='django_scheduled_tasks.tests.test_models.test_func', interval_minutes=10 @@ -32,4 +32,4 @@ def test_str(self): def test_execute(self, mock_test_func): """Runs the execute function and changes IS_EXECUTED to True when ran correctly.""" self.t1.execute() - mock_test_func.assert_called_once() \ No newline at end of file + mock_test_func.assert_called_once() From 5afe70ac3f77f98741a400303db1a828bee3cc17 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:18:48 +0100 Subject: [PATCH 35/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 19e2f35..0b460da 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -14,7 +14,7 @@ class ScheduledTaskCase(TestCase): @classmethod def setUpTestData(cls): - """Creates object to be used during testing.""" + """Creates the object to be used during testing.""" cls.t1 = ScheduledTask.objects.create( func='django_scheduled_tasks.tests.test_models.test_func', interval_minutes=10 From 3af16f682cbf38542c1747305ab0424ea221892c Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:23:00 +0100 Subject: [PATCH 36/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 0b460da..80bbf5d 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -14,7 +14,7 @@ class ScheduledTaskCase(TestCase): @classmethod def setUpTestData(cls): - """Creates the object to be used during testing.""" + """Create an object to be used during testing.""" cls.t1 = ScheduledTask.objects.create( func='django_scheduled_tasks.tests.test_models.test_func', interval_minutes=10 From 35b86004f7b3e72c98548757d80674a511022cff Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 10:32:05 +0100 Subject: [PATCH 37/54] fixing flex --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 80bbf5d..2f9a6a0 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -14,7 +14,7 @@ class ScheduledTaskCase(TestCase): @classmethod def setUpTestData(cls): - """Create an object to be used during testing.""" + """Set up test data.""" cls.t1 = ScheduledTask.objects.create( func='django_scheduled_tasks.tests.test_models.test_func', interval_minutes=10 From 4e29c0a45ccb38242a4a4839a8b2e688473c24fc Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:45:40 +0100 Subject: [PATCH 38/54] Update django_scheduled_tasks/tests/test_models.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 2f9a6a0..af13b5b 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -30,6 +30,6 @@ def test_str(self): @patch('django_scheduled_tasks.tests.test_models.test_func') def test_execute(self, mock_test_func): - """Runs the execute function and changes IS_EXECUTED to True when ran correctly.""" + """Test that the execute method runs an instance of the dummy function.""" self.t1.execute() mock_test_func.assert_called_once() From a17421637f851bf43884b067ac62cf5ddb4a2725 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:45:47 +0100 Subject: [PATCH 39/54] Update django_scheduled_tasks/tests/test_models.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index af13b5b..6610d6d 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -1,4 +1,4 @@ -"""Example test case.""" +"""Test for django_scheduled_tasks.models.""" from django.test import TestCase from django_scheduled_tasks.models import ScheduledTask from unittest.mock import patch From dcf4c4234bb0306a5790c7af04f3ef5bc6e378ad Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:45:53 +0100 Subject: [PATCH 40/54] Update django_scheduled_tasks/tests/test_models.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 6610d6d..ee3c33f 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -5,7 +5,7 @@ def test_func(): - """If the test is correctly executed, it will then pass as True.""" + """Dummy test function.""" pass From 4dd5fbef57384c923428f7358c1180d8f20e75db Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:46:02 +0100 Subject: [PATCH 41/54] Update django_scheduled_tasks/tests/test_models.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index ee3c33f..1a00903 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -10,7 +10,7 @@ def test_func(): class ScheduledTaskCase(TestCase): - """Example test case, testing the three functions (execute, str, save) in the Models module.""" + """Tests for ScheduledTask model.""" @classmethod def setUpTestData(cls): From c71c210cb000ae3f66e6cf51df2bc0aa7d3b9a4c Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:46:10 +0100 Subject: [PATCH 42/54] Update django_scheduled_tasks/tests/test_models.py Co-authored-by: LeoTurnell-Ritson <61542267+LeoTurnell-Ritson@users.noreply.github.com> --- django_scheduled_tasks/tests/test_models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/tests/test_models.py b/django_scheduled_tasks/tests/test_models.py index 1a00903..491efa0 100644 --- a/django_scheduled_tasks/tests/test_models.py +++ b/django_scheduled_tasks/tests/test_models.py @@ -21,7 +21,7 @@ def setUpTestData(cls): ) def test_str(self): - """Inserting the test obj into the answer string and seeing if it equals the same as the real result.""" + """Test the str dunder method.""" self.assertEqual( str(self.t1), f"Run {self.t1.func} every {self.t1.interval_minutes} minutes" From 4591699d44676af2d4b52ff9bb9e023c33abaa46 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:11:39 +0100 Subject: [PATCH 43/54] update schedule_task function --- django_scheduled_tasks/register.py | 44 +++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index bc05448..de24371 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -5,6 +5,7 @@ callable objects as background tasks. It adds them to the model, if they don't already exist. """ +from datetime import datetime, timedelta import logging import sys from .models import ScheduledTask @@ -51,17 +52,52 @@ def wrapper(func): def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): - """Add a scheduled task for a specific day of the week. + + def wrapper(func, interval): + if getattr(settings, 'DISABLE_SCHEDULED_TASKS', None) is True: + logger.info("DISABLE_SCHEDULED_TASKS=True - skipping task loading") + return + + skipped_args = set(sys.argv) & skip_if_arg + if skipped_args: + logger.info("Skipping task loading due to arg(s): %s", skipped_args) + return func + + try: + desc = f'{func.__module__}.{func.__name__}' + ScheduledTask.objects.create( + func=desc, + interval_minutes = interval, + day=day, + hour = hour, + onstart=onstart + ) + except IntegrityError: + # Already registered + pass + else: + logging.info(f"Registered scheduled task {desc} fpr day {day} at hour {hour}.") + + return func + return wrapper + + #do i have to register task, then do this or register, then register, start_scheduler, add_task + + + # i think below is for a test instead of the actual function + # name = 'django_scheduled_tasks.tests.test_models.test_func' + # ScheduledTask.objects.create(func=name, interval_minutes=10, day=2, hour = 13, onstart=False) + +"""Add a scheduled task for a specific day of the week. Args: day (int): Day of the week, indexing from 0 in Monday. hour (int, optional): Hour of the day, 24-hour clock, defaults to `DEFAULT_SCHEDULE_HOUR`. onstart (bool, optional): Should this be run at startup, defaults to `False`. - """ +""" - """will be calling the register task function +"""will be calling the register task function adding the day and time into the ScheduledTask.objects.create(..., day, hour), do i add these new variables into models.py? test should be doing the wrong date/time to see if it still goes through """ - pass From a78a38a12d7bc422e59191cc8dc8ff5d871a1d2c Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Fri, 23 Aug 2024 11:29:28 +0100 Subject: [PATCH 44/54] updated schedule_tasks function and started on the test for it. --- django_scheduled_tasks/register.py | 10 ---------- django_scheduled_tasks/tests/test_fake.py | 4 ++++ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index de24371..3650561 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -5,7 +5,6 @@ callable objects as background tasks. It adds them to the model, if they don't already exist. """ -from datetime import datetime, timedelta import logging import sys from .models import ScheduledTask @@ -54,15 +53,6 @@ def wrapper(func): def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): def wrapper(func, interval): - if getattr(settings, 'DISABLE_SCHEDULED_TASKS', None) is True: - logger.info("DISABLE_SCHEDULED_TASKS=True - skipping task loading") - return - - skipped_args = set(sys.argv) & skip_if_arg - if skipped_args: - logger.info("Skipping task loading due to arg(s): %s", skipped_args) - return func - try: desc = f'{func.__module__}.{func.__name__}' ScheduledTask.objects.create( diff --git a/django_scheduled_tasks/tests/test_fake.py b/django_scheduled_tasks/tests/test_fake.py index e24432d..8851765 100644 --- a/django_scheduled_tasks/tests/test_fake.py +++ b/django_scheduled_tasks/tests/test_fake.py @@ -8,3 +8,7 @@ class FakeTestCase(TestCase): def test_fake(self): """Test method to validate a 'fake' assertion.""" self.assertEqual(1, 1) + + def test_schedule_tasks(self): + """Testing that function will schedule the task at the specified time and date.""" + def setU From a54b13d079d4faf22d058bb831f502c29d2193df Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Fri, 23 Aug 2024 13:49:20 +0100 Subject: [PATCH 45/54] tests for schedule_task func --- .../tests/test_schedule_day.py | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 django_scheduled_tasks/tests/test_schedule_day.py diff --git a/django_scheduled_tasks/tests/test_schedule_day.py b/django_scheduled_tasks/tests/test_schedule_day.py new file mode 100644 index 0000000..49fb0ee --- /dev/null +++ b/django_scheduled_tasks/tests/test_schedule_day.py @@ -0,0 +1,37 @@ +"""Example test case.""" +from django.test import TestCase +from django_scheduled_tasks.models import ScheduledTask +from django_scheduled_tasks.register import schedule_task +from unittest.mock import patch + + +def test_func(): + """Dummy test function.""" + pass + +class SpecificScheduledTaskTest(TestCase): + """Testing the schedule_task function.""" + + @classmethod + def setUpTestData(cls): + cls.func = 'django_scheduled_tasks.tests.test_models.test_func' + + + @patch('django_scheduled_tasks.models.ScheduledTask.objects.create') + def test_schedule_task_with_invalid_day(self, mock_create): + with self.assertRaises(ValueError): + schedule_task(day=-1, hour=12) + + + def test_schedule_task_correct(interval=None, onstart=False, day=None, hour=None): + if day is not None and (day < 0 or day > 6): + raise ValueError("Day must be between 0 (Monday) and 6 (Sunday)") + + if hour is not None and (hour < 0 or hour > 23): + raise ValueError("Hour must be between 0 and 23") + + + + + + \ No newline at end of file From 2a43422b0ddf74ec17ae262c61893ba2a8a2f398 Mon Sep 17 00:00:00 2001 From: j43333 <141174254+j43333@users.noreply.github.com> Date: Fri, 23 Aug 2024 13:50:42 +0100 Subject: [PATCH 46/54] schedule_task func --- django_scheduled_tasks/models.py | 7 +++++++ django_scheduled_tasks/register.py | 3 ++- django_scheduled_tasks/tests/test_fake.py | 14 -------------- 3 files changed, 9 insertions(+), 15 deletions(-) delete mode 100644 django_scheduled_tasks/tests/test_fake.py diff --git a/django_scheduled_tasks/models.py b/django_scheduled_tasks/models.py index 35b2ee9..c95a246 100644 --- a/django_scheduled_tasks/models.py +++ b/django_scheduled_tasks/models.py @@ -23,6 +23,13 @@ class ScheduledTask(models.Model): last_timestamp = models.DateTimeField(null=True, blank=True) last_success = models.BooleanField(null=True, blank=True) last_runtime = models.FloatField(null=True, blank=True) + day = models.IntegerField(null=True, blank=True) # Day of the week (0 for Monday, etc.) + hour = models.IntegerField(null=True, blank=True) # Hour of the day (24-hour format) + + # day = models.IntegerField(validators= [MinValueValidator(0), + # MaxValueValidator(6)]) + # hour = models.IntegerField(validators= [MinValueValidator(8), + # MaxValueValidator(23)]) _exclusive_lock = Lock() diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index 3650561..9aafd69 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -52,6 +52,7 @@ def wrapper(func): def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): + def wrapper(func, interval): try: desc = f'{func.__module__}.{func.__name__}' @@ -66,7 +67,7 @@ def wrapper(func, interval): # Already registered pass else: - logging.info(f"Registered scheduled task {desc} fpr day {day} at hour {hour}.") + logging.info(f"Registered scheduled task {desc} for day {day} at hour {hour}.") return func return wrapper diff --git a/django_scheduled_tasks/tests/test_fake.py b/django_scheduled_tasks/tests/test_fake.py deleted file mode 100644 index 8851765..0000000 --- a/django_scheduled_tasks/tests/test_fake.py +++ /dev/null @@ -1,14 +0,0 @@ -"""Example test case.""" -from django.test import TestCase - - -class FakeTestCase(TestCase): - """Example test case.""" - - def test_fake(self): - """Test method to validate a 'fake' assertion.""" - self.assertEqual(1, 1) - - def test_schedule_tasks(self): - """Testing that function will schedule the task at the specified time and date.""" - def setU From d0b73896dcc9b0391207b8bfd3ff7f4e2d21f690 Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 14:04:50 +0100 Subject: [PATCH 47/54] consolodated tests --- django_scheduled_tasks/tests/test_register.py | 20 ++++++++++ .../tests/test_schedule_day.py | 37 ------------------- 2 files changed, 20 insertions(+), 37 deletions(-) delete mode 100644 django_scheduled_tasks/tests/test_schedule_day.py diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 200bfd9..fd34b8a 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -37,3 +37,23 @@ def dummy(): pass self.assertFalse(ScheduledTask.objects.all().exists()) + + +class SpecificScheduledTaskTest(TestCase): + """Testing the schedule_task function.""" + + @classmethod + def setUpTestData(cls): + cls.func = 'django_scheduled_tasks.tests.test_models.test_func' + + @patch('django_scheduled_tasks.models.ScheduledTask.objects.create') + def test_schedule_task_with_invalid_day(self, mock_create): + with self.assertRaises(ValueError): + schedule_task(day=-1, hour=12) + + def test_schedule_task_correct(self): + if day is not None and (day < 0 or day > 6): + raise ValueError("Day must be between 0 (Monday) and 6 (Sunday)") + + if hour is not None and (hour < 0 or hour > 23): + raise ValueError("Hour must be between 0 and 23") diff --git a/django_scheduled_tasks/tests/test_schedule_day.py b/django_scheduled_tasks/tests/test_schedule_day.py deleted file mode 100644 index 49fb0ee..0000000 --- a/django_scheduled_tasks/tests/test_schedule_day.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Example test case.""" -from django.test import TestCase -from django_scheduled_tasks.models import ScheduledTask -from django_scheduled_tasks.register import schedule_task -from unittest.mock import patch - - -def test_func(): - """Dummy test function.""" - pass - -class SpecificScheduledTaskTest(TestCase): - """Testing the schedule_task function.""" - - @classmethod - def setUpTestData(cls): - cls.func = 'django_scheduled_tasks.tests.test_models.test_func' - - - @patch('django_scheduled_tasks.models.ScheduledTask.objects.create') - def test_schedule_task_with_invalid_day(self, mock_create): - with self.assertRaises(ValueError): - schedule_task(day=-1, hour=12) - - - def test_schedule_task_correct(interval=None, onstart=False, day=None, hour=None): - if day is not None and (day < 0 or day > 6): - raise ValueError("Day must be between 0 (Monday) and 6 (Sunday)") - - if hour is not None and (hour < 0 or hour > 23): - raise ValueError("Hour must be between 0 and 23") - - - - - - \ No newline at end of file From 6a27375effea7501233ac0cf1cdf2ded17d3bd47 Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 14:41:29 +0100 Subject: [PATCH 48/54] rm comments --- django_scheduled_tasks/register.py | 56 +++++++++++------------------- 1 file changed, 20 insertions(+), 36 deletions(-) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index 9aafd69..d2777c6 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -51,44 +51,28 @@ def wrapper(func): def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): - - - def wrapper(func, interval): - try: - desc = f'{func.__module__}.{func.__name__}' - ScheduledTask.objects.create( - func=desc, - interval_minutes = interval, - day=day, - hour = hour, - onstart=onstart - ) - except IntegrityError: - # Already registered - pass - else: - logging.info(f"Registered scheduled task {desc} for day {day} at hour {hour}.") - - return func - return wrapper - - #do i have to register task, then do this or register, then register, start_scheduler, add_task - - - # i think below is for a test instead of the actual function - # name = 'django_scheduled_tasks.tests.test_models.test_func' - # ScheduledTask.objects.create(func=name, interval_minutes=10, day=2, hour = 13, onstart=False) - -"""Add a scheduled task for a specific day of the week. + """Add a scheduled task for a specific day of the week. Args: - day (int): Day of the week, indexing from 0 in Monday. + day (str): Day of the week shorthand 'mon', 'tue', etc. hour (int, optional): Hour of the day, 24-hour clock, defaults to `DEFAULT_SCHEDULE_HOUR`. onstart (bool, optional): Should this be run at startup, defaults to `False`. -""" + """ -"""will be calling the register task function - adding the day and time into the ScheduledTask.objects.create(..., day, hour), - do i add these new variables into models.py? - - test should be doing the wrong date/time to see if it still goes through """ + def wrapper(func): + try: + desc = f'{func.__module__}.{func.__name__}' + ScheduledTask.objects.create( + func=desc, + day=day, + hour=hour, + onstart=onstart + ) + except IntegrityError: + # Already registered + pass + else: + logging.info(f"Registered scheduled task {desc} for day {day} at hour {hour}.") + + return func + return wrapper From cbd4c8020cd194a2979b4d928c417a04d62a0b5e Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 14:41:56 +0100 Subject: [PATCH 49/54] add add_day_task(...) func --- django_scheduled_tasks/scheduler.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/django_scheduled_tasks/scheduler.py b/django_scheduled_tasks/scheduler.py index c7ec69a..f89eb20 100644 --- a/django_scheduled_tasks/scheduler.py +++ b/django_scheduled_tasks/scheduler.py @@ -8,6 +8,7 @@ import logging import os from apscheduler.schedulers.background import BackgroundScheduler +from apscheduler.triggers.cron import CronTrigger from .models import ScheduledTask logger = logging.getLogger(__name__) @@ -40,6 +41,10 @@ def add_task(func, minutes, next_run_time): _scheduler.add_job(func, 'interval', minutes=minutes, next_run_time=next_run_time) +def add_day_task(func, day, hour, next_run_time): + _scheduler.add_job(job_function, trigger=CronTrigger(day_of_week=day, hour=hour), next_run_time=next_run_time) + + def _load_tasks(): """Load our tasks from the model and add them to the scheduler.""" tasks = ScheduledTask.objects.filter(enabled=True) @@ -49,5 +54,9 @@ def _load_tasks(): soon = datetime.now() + timedelta(minutes=1) for task in tasks: - add_task(task.execute, task.interval_minutes, next_run_time=soon if task.onstart else None) + if task.interval_minutes: + add_task(task.execute, task.interval_minutes, next_run_time=soon if task.onstart else None) + else: + add_day_task(task.execute, task.day, task.hour, next_run_time=soon if task.onstart else None) + logging.info(f"Added task '{task}' to background scheduler") From 78b1976042b81f14fafc6c200a6e7b30dc334d1c Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 14:42:59 +0100 Subject: [PATCH 50/54] add day and hour fields, with migrations --- ...ledtask_day_scheduledtask_hour_and_more.py | 29 +++++++++++++++++++ django_scheduled_tasks/models.py | 23 +++++++++------ 2 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 django_scheduled_tasks/migrations/0005_scheduledtask_day_scheduledtask_hour_and_more.py diff --git a/django_scheduled_tasks/migrations/0005_scheduledtask_day_scheduledtask_hour_and_more.py b/django_scheduled_tasks/migrations/0005_scheduledtask_day_scheduledtask_hour_and_more.py new file mode 100644 index 0000000..efee10a --- /dev/null +++ b/django_scheduled_tasks/migrations/0005_scheduledtask_day_scheduledtask_hour_and_more.py @@ -0,0 +1,29 @@ +# Generated by Django 5.0.7 on 2024-08-23 13:38 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('django_scheduled_tasks', '0004_scheduledtask_exclusive'), + ] + + operations = [ + migrations.AddField( + model_name='scheduledtask', + name='day', + field=models.CharField(blank=True, max_length=3, null=True), + ), + migrations.AddField( + model_name='scheduledtask', + name='hour', + field=models.SmallIntegerField(blank=True, null=True, validators=[django.core.validators.MinValueValidator(0), django.core.validators.MaxValueValidator(23)]), + ), + migrations.AlterField( + model_name='scheduledtask', + name='interval_minutes', + field=models.IntegerField(blank=True, null=True, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(1440)]), + ), + ] diff --git a/django_scheduled_tasks/models.py b/django_scheduled_tasks/models.py index c95a246..e2d2e86 100644 --- a/django_scheduled_tasks/models.py +++ b/django_scheduled_tasks/models.py @@ -15,24 +15,29 @@ class ScheduledTask(models.Model): """A record represents a single scheduled (recurring) task.""" func = models.CharField(max_length=100, unique=True) # importable function name - interval_minutes = models.IntegerField(validators=[MinValueValidator(1), - MaxValueValidator(1440)]) # 1 min to 24 hours + onstart = models.BooleanField(default=False) # run at django startup? enabled = models.BooleanField(default=True) exclusive = models.BooleanField(default=True) # run as the only task (I.e. thread locked) + last_timestamp = models.DateTimeField(null=True, blank=True) last_success = models.BooleanField(null=True, blank=True) last_runtime = models.FloatField(null=True, blank=True) - day = models.IntegerField(null=True, blank=True) # Day of the week (0 for Monday, etc.) - hour = models.IntegerField(null=True, blank=True) # Hour of the day (24-hour format) - - # day = models.IntegerField(validators= [MinValueValidator(0), - # MaxValueValidator(6)]) - # hour = models.IntegerField(validators= [MinValueValidator(8), - # MaxValueValidator(23)]) + day = models.CharField(max_length=3, null=True, blank=True) # Day of the week ('mon', 'tue', etc.) + hour = models.SmallIntegerField( + validators=[MinValueValidator(0), MaxValueValidator(23)], + null=True, + blank=True + ) # Hour of the day (24-hour format) + interval_minutes = models.IntegerField( + validators=[MinValueValidator(1), MaxValueValidator(1440)], + null=True, + blank=True + ) # 1 min to 24 hours _exclusive_lock = Lock() + def execute(self): """Execute this task.""" modulename, funcname = self.func.rsplit('.', 1) From 55d057df5a434e0525d11776c6490d6e7b38ed23 Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 15:19:36 +0100 Subject: [PATCH 51/54] add test and fixes --- django_scheduled_tasks/register.py | 4 +-- django_scheduled_tasks/scheduler.py | 2 +- django_scheduled_tasks/tests/test_register.py | 27 +++++++++++++++---- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index d2777c6..2fb01db 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -74,5 +74,5 @@ def wrapper(func): else: logging.info(f"Registered scheduled task {desc} for day {day} at hour {hour}.") - return func - return wrapper + return func + return wrapper diff --git a/django_scheduled_tasks/scheduler.py b/django_scheduled_tasks/scheduler.py index f89eb20..d69189a 100644 --- a/django_scheduled_tasks/scheduler.py +++ b/django_scheduled_tasks/scheduler.py @@ -42,7 +42,7 @@ def add_task(func, minutes, next_run_time): def add_day_task(func, day, hour, next_run_time): - _scheduler.add_job(job_function, trigger=CronTrigger(day_of_week=day, hour=hour), next_run_time=next_run_time) + _scheduler.add_job(func, trigger=CronTrigger(day_of_week=day, hour=hour), next_run_time=next_run_time) def _load_tasks(): diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index fd34b8a..2399766 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -1,6 +1,8 @@ """Example test case.""" +from time import sleep +from time_machine import travel from django_scheduled_tasks.models import ScheduledTask -from django_scheduled_tasks.register import register_task +from django_scheduled_tasks.register import register_task, schedule_task from django.test import TestCase from unittest.mock import patch @@ -39,13 +41,27 @@ def dummy(): self.assertFalse(ScheduledTask.objects.all().exists()) -class SpecificScheduledTaskTest(TestCase): +class ScheduledTaskTestCase(TestCase): """Testing the schedule_task function.""" - @classmethod - def setUpTestData(cls): - cls.func = 'django_scheduled_tasks.tests.test_models.test_func' + def test_schedule_task(self): + @schedule_task('mon') + def dummy(): + pass + + self.assertTrue(ScheduledTask.objects.all().exists()) + + def test_schedule_task_with_hour(self): + + @schedule_task('mon', hour=12) + def dummy(): + pass + + self.assertTrue(ScheduledTask.objects.all().exists()) + + + """ @patch('django_scheduled_tasks.models.ScheduledTask.objects.create') def test_schedule_task_with_invalid_day(self, mock_create): with self.assertRaises(ValueError): @@ -57,3 +73,4 @@ def test_schedule_task_correct(self): if hour is not None and (hour < 0 or hour > 23): raise ValueError("Hour must be between 0 and 23") + """ From 59d4244781141f70ee07a9b0f47458438d74c686 Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 15:22:56 +0100 Subject: [PATCH 52/54] flake8 --- django_scheduled_tasks/register.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index bc05448..8e9f640 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -58,10 +58,4 @@ def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): hour (int, optional): Hour of the day, 24-hour clock, defaults to `DEFAULT_SCHEDULE_HOUR`. onstart (bool, optional): Should this be run at startup, defaults to `False`. """ - - """will be calling the register task function - adding the day and time into the ScheduledTask.objects.create(..., day, hour), - do i add these new variables into models.py? - - test should be doing the wrong date/time to see if it still goes through """ pass From b566472fd97078b87c0c3565ca57db70319aa413 Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 15:26:56 +0100 Subject: [PATCH 53/54] flake8 --- django_scheduled_tasks/models.py | 1 - django_scheduled_tasks/scheduler.py | 1 + django_scheduled_tasks/tests/test_register.py | 21 ++----------------- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/django_scheduled_tasks/models.py b/django_scheduled_tasks/models.py index e2d2e86..6633040 100644 --- a/django_scheduled_tasks/models.py +++ b/django_scheduled_tasks/models.py @@ -37,7 +37,6 @@ class ScheduledTask(models.Model): _exclusive_lock = Lock() - def execute(self): """Execute this task.""" modulename, funcname = self.func.rsplit('.', 1) diff --git a/django_scheduled_tasks/scheduler.py b/django_scheduled_tasks/scheduler.py index d69189a..9c00aa5 100644 --- a/django_scheduled_tasks/scheduler.py +++ b/django_scheduled_tasks/scheduler.py @@ -42,6 +42,7 @@ def add_task(func, minutes, next_run_time): def add_day_task(func, day, hour, next_run_time): + """Add a task to our scheduler. Call function 'func' on every 'day' at 'hour' hours.""" _scheduler.add_job(func, trigger=CronTrigger(day_of_week=day, hour=hour), next_run_time=next_run_time) diff --git a/django_scheduled_tasks/tests/test_register.py b/django_scheduled_tasks/tests/test_register.py index 2399766..c1f8541 100644 --- a/django_scheduled_tasks/tests/test_register.py +++ b/django_scheduled_tasks/tests/test_register.py @@ -1,6 +1,4 @@ """Example test case.""" -from time import sleep -from time_machine import travel from django_scheduled_tasks.models import ScheduledTask from django_scheduled_tasks.register import register_task, schedule_task from django.test import TestCase @@ -45,7 +43,7 @@ class ScheduledTaskTestCase(TestCase): """Testing the schedule_task function.""" def test_schedule_task(self): - + """Test decorator registers task.""" @schedule_task('mon') def dummy(): pass @@ -53,24 +51,9 @@ def dummy(): self.assertTrue(ScheduledTask.objects.all().exists()) def test_schedule_task_with_hour(self): - + """Test decorator registers task with hour argument.""" @schedule_task('mon', hour=12) def dummy(): pass self.assertTrue(ScheduledTask.objects.all().exists()) - - - """ - @patch('django_scheduled_tasks.models.ScheduledTask.objects.create') - def test_schedule_task_with_invalid_day(self, mock_create): - with self.assertRaises(ValueError): - schedule_task(day=-1, hour=12) - - def test_schedule_task_correct(self): - if day is not None and (day < 0 or day > 6): - raise ValueError("Day must be between 0 (Monday) and 6 (Sunday)") - - if hour is not None and (hour < 0 or hour > 23): - raise ValueError("Hour must be between 0 and 23") - """ From bcd09d1bf23a7bcca7491af5e4cca9e9b89707ed Mon Sep 17 00:00:00 2001 From: "Leo Turnell-Ritson (Advanced Research Computing)" Date: Fri, 23 Aug 2024 15:35:20 +0100 Subject: [PATCH 54/54] docstring --- django_scheduled_tasks/register.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_scheduled_tasks/register.py b/django_scheduled_tasks/register.py index 1fabe51..5131516 100644 --- a/django_scheduled_tasks/register.py +++ b/django_scheduled_tasks/register.py @@ -54,7 +54,7 @@ def schedule_task(day, hour=DEFAULT_SCHEDULE_HOUR, onstart=False): """Add a scheduled task for a specific day of the week. Args: - day (str): Day of the week shorthand 'mon', 'tue', etc. + day (str): Day of the week shorthand 'mon', 'tue', 'wed', etc. hour (int, optional): Hour of the day, 24-hour clock, defaults to `DEFAULT_SCHEDULE_HOUR`. onstart (bool, optional): Should this be run at startup, defaults to `False`. """