|
@@ -1,6 +1,6 @@
|
|
import unittest
|
|
import unittest
|
|
from datetime import datetime, timedelta
|
|
from datetime import datetime, timedelta
|
|
-from celery.models import TaskMeta, PeriodicTaskMeta
|
|
|
|
|
|
+from celery.models import TaskMeta, TaskSetMeta, PeriodicTaskMeta
|
|
from celery.task import PeriodicTask
|
|
from celery.task import PeriodicTask
|
|
from celery.registry import tasks
|
|
from celery.registry import tasks
|
|
from celery.utils import gen_unique_id
|
|
from celery.utils import gen_unique_id
|
|
@@ -18,6 +18,11 @@ class TestModels(unittest.TestCase):
|
|
taskmeta, created = TaskMeta.objects.get_or_create(task_id=id)
|
|
taskmeta, created = TaskMeta.objects.get_or_create(task_id=id)
|
|
return taskmeta
|
|
return taskmeta
|
|
|
|
|
|
|
|
+ def createTaskSetMeta(self):
|
|
|
|
+ id = gen_unique_id()
|
|
|
|
+ tasksetmeta, created = TaskSetMeta.objects.get_or_create(taskset_id=id)
|
|
|
|
+ return tasksetmeta
|
|
|
|
+
|
|
def createPeriodicTaskMeta(self, name):
|
|
def createPeriodicTaskMeta(self, name):
|
|
ptaskmeta, created = PeriodicTaskMeta.objects.get_or_create(name=name,
|
|
ptaskmeta, created = PeriodicTaskMeta.objects.get_or_create(name=name,
|
|
defaults={"last_run_at": datetime.now()})
|
|
defaults={"last_run_at": datetime.now()})
|
|
@@ -50,6 +55,29 @@ class TestModels(unittest.TestCase):
|
|
|
|
|
|
TaskMeta.objects.delete_expired()
|
|
TaskMeta.objects.delete_expired()
|
|
self.assertFalse(m1 in TaskMeta.objects.all())
|
|
self.assertFalse(m1 in TaskMeta.objects.all())
|
|
|
|
+
|
|
|
|
+ def test_tasksetmeta(self):
|
|
|
|
+ m1 = self.createTaskSetMeta()
|
|
|
|
+ m2 = self.createTaskSetMeta()
|
|
|
|
+ m3 = self.createTaskSetMeta()
|
|
|
|
+ self.assertTrue(unicode(m1).startswith("<TaskSet:"))
|
|
|
|
+ self.assertTrue(m1.taskset_id)
|
|
|
|
+ self.assertTrue(isinstance(m1.date_done, datetime))
|
|
|
|
+
|
|
|
|
+ self.assertEquals(TaskSetMeta.objects.get_result(m1.taskset_id).taskset_id,
|
|
|
|
+ m1.taskset_id)
|
|
|
|
+
|
|
|
|
+ # Have to avoid save() because it applies the auto_now=True.
|
|
|
|
+ TaskSetMeta.objects.filter(taskset_id=m1.taskset_id).update(
|
|
|
|
+ date_done=datetime.now() - timedelta(days=10))
|
|
|
|
+
|
|
|
|
+ expired = TaskSetMeta.objects.get_all_expired()
|
|
|
|
+ self.assertTrue(m1 in expired)
|
|
|
|
+ self.assertFalse(m2 in expired)
|
|
|
|
+ self.assertFalse(m3 in expired)
|
|
|
|
+
|
|
|
|
+ TaskSetMeta.objects.delete_expired()
|
|
|
|
+ self.assertFalse(m1 in TaskSetMeta.objects.all())
|
|
|
|
|
|
def test_periodic_taskmeta(self):
|
|
def test_periodic_taskmeta(self):
|
|
tasks.register(TestPeriodicTask)
|
|
tasks.register(TestPeriodicTask)
|