|
@@ -1,6 +1,22 @@
|
|
import unittest
|
|
import unittest
|
|
import time
|
|
import time
|
|
-from celery.monitoring import TaskTimerStats
|
|
|
|
|
|
+from celery.monitoring import TaskTimerStats, Statistics, StatsCollector
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class PartialStatistics(Statistics):
|
|
|
|
+ type = "c.u.partial"
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class TestStatisticsInterface(unittest.TestCase):
|
|
|
|
+
|
|
|
|
+ def test_must_have_type(self):
|
|
|
|
+ self.assertRaises(NotImplementedError, Statistics)
|
|
|
|
+
|
|
|
|
+ def test_must_have_on_start(self):
|
|
|
|
+ self.assertRaises(NotImplementedError, PartialStatistics().on_start)
|
|
|
|
+
|
|
|
|
+ def test_must_have_on_stop(self):
|
|
|
|
+ self.assertRaises(NotImplementedError, PartialStatistics().on_stop)
|
|
|
|
|
|
|
|
|
|
class TestTaskTimerStats(unittest.TestCase):
|
|
class TestTaskTimerStats(unittest.TestCase):
|
|
@@ -10,6 +26,14 @@ class TestTaskTimerStats(unittest.TestCase):
|
|
self.assertTimeElapsed(0.002, 0.05, 0, "0.0")
|
|
self.assertTimeElapsed(0.002, 0.05, 0, "0.0")
|
|
self.assertTimeElapsed(0.1, 0.5, 0, "0.1")
|
|
self.assertTimeElapsed(0.1, 0.5, 0, "0.1")
|
|
|
|
|
|
|
|
+ def test_not_enabled(self):
|
|
|
|
+ t = TaskTimerStats()
|
|
|
|
+ t.enabled = False
|
|
|
|
+ self.assertFalse(t.publish(isnot="enabled"))
|
|
|
|
+ self.assertFalse(getattr(t, "time_start", None))
|
|
|
|
+ t.run("foo", "bar", [], {})
|
|
|
|
+ t.stop()
|
|
|
|
+
|
|
def assertTimeElapsed(self, time_sleep, max_appx, min_appx, appx):
|
|
def assertTimeElapsed(self, time_sleep, max_appx, min_appx, appx):
|
|
t = TaskTimerStats()
|
|
t = TaskTimerStats()
|
|
t.enabled = True
|
|
t.enabled = True
|
|
@@ -24,3 +48,18 @@ class TestTaskTimerStats(unittest.TestCase):
|
|
strstop = str(time_stop)[0:3]
|
|
strstop = str(time_stop)[0:3]
|
|
# Time elapsed is approximately 0.1 seconds.
|
|
# Time elapsed is approximately 0.1 seconds.
|
|
self.assertTrue(strstop == appx)
|
|
self.assertTrue(strstop == appx)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class TestStatsCollector(unittest.TestCase):
|
|
|
|
+
|
|
|
|
+ def test_attrs(self):
|
|
|
|
+ s = StatsCollector()
|
|
|
|
+ self.assertEquals(s.total_tasks_processed, 0)
|
|
|
|
+ self.assertEquals(s.total_tasks_processed_by_type, {})
|
|
|
|
+ self.assertEquals(s.total_task_time_running, 0.0)
|
|
|
|
+ self.assertEquals(s.total_task_time_running_by_type, {})
|
|
|
|
+
|
|
|
|
+ def test_collect(self):
|
|
|
|
+ s = StatsCollector()
|
|
|
|
+ s.collect()
|
|
|
|
+ self.assertEquals(s.total_tasks_processed, 0)
|