Przeglądaj źródła

Fix a few failing unit tests

* pyparsing is no longer used- we have our own ParseException class
* StringIO has been subclassed by WhateverIO, causing a broken import
* We should use datetime.utcnow() rather than datetime.now() calls in
  tests now that the UTC branch has been merged, this caused two failing
  tests (at least in my timezone)
Dan McGee 13 lat temu
rodzic
commit
8462914b8e
2 zmienionych plików z 7 dodań i 7 usunięć
  1. 6 6
      celery/tests/test_task/__init__.py
  2. 1 1
      celery/tests/utils.py

+ 6 - 6
celery/tests/test_task/__init__.py

@@ -306,8 +306,8 @@ class TestCeleryTasks(unittest.TestCase):
 
 
         # With eta.
         # With eta.
         presult2 = t1.apply_async(kwargs=dict(name="George Costanza"),
         presult2 = t1.apply_async(kwargs=dict(name="George Costanza"),
-                                  eta=datetime.now() + timedelta(days=1),
-                                  expires=datetime.now() + timedelta(days=2))
+                                  eta=datetime.utcnow() + timedelta(days=1),
+                                  expires=datetime.utcnow() + timedelta(days=2))
         self.assertNextTaskDataEqual(consumer, presult2, t1.name,
         self.assertNextTaskDataEqual(consumer, presult2, t1.name,
                 name="George Costanza", test_eta=True, test_expires=True)
                 name="George Costanza", test_eta=True, test_expires=True)
 
 
@@ -522,11 +522,11 @@ class TestPeriodicTask(unittest.TestCase):
 
 
     def test_remaining_estimate(self):
     def test_remaining_estimate(self):
         self.assertIsInstance(
         self.assertIsInstance(
-            MyPeriodic().remaining_estimate(datetime.now()),
+            MyPeriodic().remaining_estimate(datetime.utcnow()),
             timedelta)
             timedelta)
 
 
     def test_is_due_not_due(self):
     def test_is_due_not_due(self):
-        due, remaining = MyPeriodic().is_due(datetime.now())
+        due, remaining = MyPeriodic().is_due(datetime.utcnow())
         self.assertFalse(due)
         self.assertFalse(due)
         # This assertion may fail if executed in the
         # This assertion may fail if executed in the
         # first minute of an hour, thus 59 instead of 60
         # first minute of an hour, thus 59 instead of 60
@@ -534,7 +534,7 @@ class TestPeriodicTask(unittest.TestCase):
 
 
     def test_is_due(self):
     def test_is_due(self):
         p = MyPeriodic()
         p = MyPeriodic()
-        due, remaining = p.is_due(datetime.now() - p.run_every.run_every)
+        due, remaining = p.is_due(datetime.utcnow() - p.run_every.run_every)
         self.assertTrue(due)
         self.assertTrue(due)
         self.assertEqual(remaining,
         self.assertEqual(remaining,
                          p.timedelta_seconds(p.run_every.run_every))
                          p.timedelta_seconds(p.run_every.run_every))
@@ -710,7 +710,7 @@ class test_crontab_remaining_estimate(unittest.TestCase):
 class test_crontab_is_due(unittest.TestCase):
 class test_crontab_is_due(unittest.TestCase):
 
 
     def setUp(self):
     def setUp(self):
-        self.now = datetime.now()
+        self.now = datetime.utcnow()
         self.next_minute = 60 - self.now.second - 1e-6 * self.now.microsecond
         self.next_minute = 60 - self.now.second - 1e-6 * self.now.microsecond
 
 
     def test_default_crontab_spec(self):
     def test_default_crontab_spec(self):

+ 1 - 1
celery/tests/utils.py

@@ -254,7 +254,7 @@ def mask_modules(*modnames):
 
 
 @contextmanager
 @contextmanager
 def override_stdouts():
 def override_stdouts():
-    """Override `sys.stdout` and `sys.stderr` with `StringIO`."""
+    """Override `sys.stdout` and `sys.stderr` with `WhateverIO`."""
     prev_out, prev_err = sys.stdout, sys.stderr
     prev_out, prev_err = sys.stdout, sys.stderr
     mystdout, mystderr = WhateverIO(), WhateverIO()
     mystdout, mystderr = WhateverIO(), WhateverIO()
     sys.stdout = sys.__stdout__ = mystdout
     sys.stdout = sys.__stdout__ = mystdout