hawkie fixes

This commit is contained in:
HawkOwl 2015-07-13 12:53:39 +08:00
parent 8492dcde48
commit 9d86aaad34
4 changed files with 16 additions and 7 deletions

View File

@ -8,10 +8,10 @@ def encode_request(request):
""" """
# TODO: More stuff # TODO: More stuff
value = { value = {
"GET": request.GET.items(), "GET": list(request.GET.items()),
"POST": request.POST.items(), "POST": list(request.POST.items()),
"COOKIES": request.COOKIES, "COOKIES": request.COOKIES,
"META": {k: v for k, v in request.META.items() if not k.startswith("wsgi")}, "META": dict({k: v for k, v in request.META.items() if not k.startswith("wsgi")}),
"path": request.path, "path": request.path,
"path_info": request.path_info, "path_info": request.path_info,
"method": request.method, "method": request.method,

View File

@ -1,4 +1,5 @@
from django.http import HttpResponse from django.http import HttpResponse
from six import PY3
def encode_response(response): def encode_response(response):
@ -10,8 +11,10 @@ def encode_response(response):
"content_type": getattr(response, "content_type", None), "content_type": getattr(response, "content_type", None),
"content": response.content, "content": response.content,
"status_code": response.status_code, "status_code": response.status_code,
"headers": response._headers.values(), "headers": list(response._headers.values()),
} }
if PY3:
value["content"] = value["content"].decode('utf8')
response.close() response.close()
return value return value

View File

@ -1,6 +1,7 @@
import types import types
from django.apps import apps from django.apps import apps
from six import PY3
def auto_import_consumers(): def auto_import_consumers():
""" """
@ -12,8 +13,13 @@ def auto_import_consumers():
try: try:
__import__(module_name) __import__(module_name)
except ImportError as e: except ImportError as e:
if "no module named %s" % submodule not in str(e).lower(): err = str(e).lower()
raise if PY3:
if "no module named '%s'" % (module_name,) not in err:
raise
else:
if "no module named %s" % (submodule,) not in err:
raise
def name_that_thing(thing): def name_that_thing(thing):

View File

@ -27,7 +27,7 @@ app, and put this in a ``consumers.py`` file in the app::
@consumer("django.wsgi.request") @consumer("django.wsgi.request")
def http_consumer(response_channel, path, **kwargs): def http_consumer(response_channel, path, **kwargs):
response = HttpResponse("Hello world! You asked for %s" % path) response = HttpResponse("Hello world! You asked for %s" % path)
Channel(response_channel).send(response.channel_encode()) Channel(response_channel).send(**response.channel_encode())
The most important thing to note here is that, because things we send in The most important thing to note here is that, because things we send in
messages must be JSON-serialisable, the request and response messages messages must be JSON-serialisable, the request and response messages