|
@@ -1,5 +1,5 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
-from __future__ import with_statement, generators
|
|
|
+from __future__ import generators
|
|
|
|
|
|
import sys
|
|
|
import logging
|
|
@@ -15,7 +15,7 @@ from billiard.utils.functional import wraps
|
|
|
from anyjson import serialize
|
|
|
|
|
|
from celery.task import http
|
|
|
-from celery.tests.utils import eager_tasks
|
|
|
+from celery.tests.utils import eager_tasks, execute_context
|
|
|
|
|
|
|
|
|
@contextmanager
|
|
@@ -99,57 +99,92 @@ class TestHttpDispatch(unittest.TestCase):
|
|
|
|
|
|
def test_dispatch_success(self):
|
|
|
logger = logging.getLogger("celery.unittest")
|
|
|
- with mock_urlopen(success_response(100)):
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.HttpDispatch("http://example.com/mul", "GET", {
|
|
|
"x": 10, "y": 10}, logger)
|
|
|
self.assertEquals(d.dispatch(), 100)
|
|
|
|
|
|
+ context = mock_urlopen(success_response(100))
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
+
|
|
|
def test_dispatch_failure(self):
|
|
|
logger = logging.getLogger("celery.unittest")
|
|
|
- with mock_urlopen(fail_response("Invalid moon alignment")):
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.HttpDispatch("http://example.com/mul", "GET", {
|
|
|
"x": 10, "y": 10}, logger)
|
|
|
self.assertRaises(http.RemoteExecuteError, d.dispatch)
|
|
|
|
|
|
+ context = mock_urlopen(fail_response("Invalid moon alignment"))
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
+
|
|
|
def test_dispatch_empty_response(self):
|
|
|
logger = logging.getLogger("celery.unittest")
|
|
|
- with mock_urlopen(_response("")):
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.HttpDispatch("http://example.com/mul", "GET", {
|
|
|
"x": 10, "y": 10}, logger)
|
|
|
self.assertRaises(http.InvalidResponseError, d.dispatch)
|
|
|
|
|
|
+ context = mock_urlopen(_response(""))
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
+
|
|
|
def test_dispatch_non_json(self):
|
|
|
logger = logging.getLogger("celery.unittest")
|
|
|
- with mock_urlopen(_response("{'#{:'''")):
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.HttpDispatch("http://example.com/mul", "GET", {
|
|
|
"x": 10, "y": 10}, logger)
|
|
|
self.assertRaises(http.InvalidResponseError, d.dispatch)
|
|
|
|
|
|
+ context = mock_urlopen(_response("{'#{:'''"))
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
+
|
|
|
def test_dispatch_unknown_status(self):
|
|
|
logger = logging.getLogger("celery.unittest")
|
|
|
- with mock_urlopen(unknown_response()):
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.HttpDispatch("http://example.com/mul", "GET", {
|
|
|
"x": 10, "y": 10}, logger)
|
|
|
self.assertRaises(http.UnknownStatusError, d.dispatch)
|
|
|
|
|
|
+ context = mock_urlopen(unknown_response())
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
+
|
|
|
def test_dispatch_POST(self):
|
|
|
logger = logging.getLogger("celery.unittest")
|
|
|
- with mock_urlopen(success_response(100)):
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.HttpDispatch("http://example.com/mul", "POST", {
|
|
|
"x": 10, "y": 10}, logger)
|
|
|
self.assertEquals(d.dispatch(), 100)
|
|
|
|
|
|
+ context = mock_urlopen(success_response(100))
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
|
|
|
class TestURL(unittest.TestCase):
|
|
|
|
|
|
def test_URL_get_async(self):
|
|
|
- with eager_tasks():
|
|
|
- with mock_urlopen(success_response(100)):
|
|
|
+ def with_eager_tasks():
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.URL("http://example.com/mul").get_async(x=10, y=10)
|
|
|
self.assertEquals(d.get(), 100)
|
|
|
|
|
|
+ context = mock_urlopen(success_response(100))
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
+
|
|
|
+ execute_context(eager_tasks(), with_eager_tasks)
|
|
|
+
|
|
|
def test_URL_post_async(self):
|
|
|
- with eager_tasks():
|
|
|
- with mock_urlopen(success_response(100)):
|
|
|
+ def with_eager_tasks():
|
|
|
+
|
|
|
+ def with_mock_urlopen():
|
|
|
d = http.URL("http://example.com/mul").post_async(x=10, y=10)
|
|
|
self.assertEquals(d.get(), 100)
|
|
|
+
|
|
|
+ context = mock_urlopen(success_response(100))
|
|
|
+ execute_context(context, with_mock_urlopen)
|
|
|
+
|
|
|
+ execute_context(eager_tasks(), with_eager_tasks)
|