Browse Source

Tests passing on Python2.5

Ask Solem 13 years ago
parent
commit
51fdd6419b
2 changed files with 21 additions and 10 deletions
  1. 16 4
      celery/tests/test_backends/test_mongodb.py
  2. 5 6
      celery/worker/job.py

+ 16 - 4
celery/tests/test_backends/test_mongodb.py

@@ -26,18 +26,30 @@ MONGODB_DATABASE = "testing"
 MONGODB_COLLECTION = "collection1"
 
 
-@patch("celery.backends.mongodb.MongoBackend.decode", Mock())
-@patch("celery.backends.mongodb.MongoBackend.encode", Mock())
-@patch("pymongo.binary.Binary", Mock())
-@patch("datetime.datetime", Mock())
 class TestBackendMongoDb(Case):
 
     def setUp(self):
         if pymongo is None:
             raise SkipTest("pymongo is not installed.")
+        import datetime
+        from pymongo import binary
+
+        R = self._reset = {}
+        R["encode"], MongoBackend.encode = MongoBackend.encode, Mock()
+        R["decode"], MongoBackend.decode = MongoBackend.decode, Mock()
+        R["Binary"], binary.Binary = binary.Binary, Mock()
+        R["datetime"], datetime.datetime = datetime.datetime, Mock()
 
         self.backend = MongoBackend()
 
+    def tearDown(self):
+        import datetime
+        from pymongo import binary
+        MongoBackend.encode = self._reset["encode"]
+        MongoBackend.decode = self._reset["decode"]
+        binary.Binary = self._reset["Binary"]
+        datetime.datetime = self._reset["datetime"]
+
     @patch("pymongo.connection.Connection")
     def test_get_connection_connection_exists(self, mock_Connection):
         self.backend._connection = sentinel._connection

+ 5 - 6
celery/worker/job.py

@@ -94,6 +94,11 @@ class Request(object):
         self.id = body["id"]
         self.args = body.get("args", [])
         self.kwargs = body.get("kwargs", {})
+        try:
+            self.kwargs.items
+        except AttributeError:
+            raise exceptions.InvalidTaskError(
+                    "Task keyword arguments is not a mapping")
         if NEEDS_KWDICT:
             self.kwargs = kwdict(self.kwargs)
         eta = body.get("eta")
@@ -135,12 +140,6 @@ class Request(object):
 
         self.request_dict = body
 
-        try:
-            self.kwargs.items
-        except AttributeError:
-            raise exceptions.InvalidTaskError(
-                    "Task keyword arguments is not a mapping")
-
     @classmethod
     def from_message(cls, message, body, **kwargs):
         # should be deprecated