Merge "Python3: fix test_xprofile.py"
This commit is contained in:
commit
d645e216c0
@ -21,9 +21,13 @@ import string
|
|||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from swift import gettext_ as _
|
from swift import gettext_ as _
|
||||||
from exceptions import PLOTLIBNotInstalled, ODFLIBNotInstalled,\
|
from swift.common.middleware.x_profile.exceptions import PLOTLIBNotInstalled
|
||||||
NotFoundException, MethodNotAllowed, DataLoadFailure, ProfileException
|
from swift.common.middleware.x_profile.exceptions import ODFLIBNotInstalled
|
||||||
from profile_model import Stats2
|
from swift.common.middleware.x_profile.exceptions import NotFoundException
|
||||||
|
from swift.common.middleware.x_profile.exceptions import MethodNotAllowed
|
||||||
|
from swift.common.middleware.x_profile.exceptions import DataLoadFailure
|
||||||
|
from swift.common.middleware.x_profile.exceptions import ProfileException
|
||||||
|
from swift.common.middleware.x_profile.profile_model import Stats2
|
||||||
|
|
||||||
PLOTLIB_INSTALLED = True
|
PLOTLIB_INSTALLED = True
|
||||||
try:
|
try:
|
||||||
|
@ -86,10 +86,11 @@ from six.moves import urllib
|
|||||||
from swift import gettext_ as _
|
from swift import gettext_ as _
|
||||||
from swift.common.utils import get_logger, config_true_value
|
from swift.common.utils import get_logger, config_true_value
|
||||||
from swift.common.swob import Request
|
from swift.common.swob import Request
|
||||||
from x_profile.exceptions import NotFoundException, MethodNotAllowed,\
|
from swift.common.middleware.x_profile.exceptions import MethodNotAllowed
|
||||||
ProfileException
|
from swift.common.middleware.x_profile.exceptions import NotFoundException
|
||||||
from x_profile.html_viewer import HTMLViewer
|
from swift.common.middleware.x_profile.exceptions import ProfileException
|
||||||
from x_profile.profile_model import ProfileLog
|
from swift.common.middleware.x_profile.html_viewer import HTMLViewer
|
||||||
|
from swift.common.middleware.x_profile.profile_model import ProfileLog
|
||||||
|
|
||||||
|
|
||||||
DEFAULT_PROFILE_PREFIX = '/tmp/log/swift/profile/default.profile'
|
DEFAULT_PROFILE_PREFIX = '/tmp/log/swift/profile/default.profile'
|
||||||
@ -107,7 +108,10 @@ PROFILE_EXEC_LAZY = """
|
|||||||
app_iter_ = self.app(environ, start_response)
|
app_iter_ = self.app(environ, start_response)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
thread = patcher.original('thread') # non-monkeypatched module needed
|
if six.PY3:
|
||||||
|
thread = patcher.original('_thread') # non-monkeypatched module needed
|
||||||
|
else:
|
||||||
|
thread = patcher.original('thread') # non-monkeypatched module needed
|
||||||
|
|
||||||
|
|
||||||
# This monkey patch code fix the problem of eventlet profile tool
|
# This monkey patch code fix the problem of eventlet profile tool
|
||||||
@ -177,7 +181,7 @@ class ProfileMiddleware(object):
|
|||||||
def _combine_body_qs(self, request):
|
def _combine_body_qs(self, request):
|
||||||
wsgi_input = request.environ['wsgi.input']
|
wsgi_input = request.environ['wsgi.input']
|
||||||
query_dict = request.params
|
query_dict = request.params
|
||||||
qs_in_body = wsgi_input.read()
|
qs_in_body = wsgi_input.read().decode('utf-8')
|
||||||
query_dict.update(urllib.parse.parse_qs(qs_in_body,
|
query_dict.update(urllib.parse.parse_qs(qs_in_body,
|
||||||
keep_blank_values=True,
|
keep_blank_values=True,
|
||||||
strict_parsing=False))
|
strict_parsing=False))
|
||||||
|
@ -132,7 +132,7 @@ class TestProfileMiddleware(unittest.TestCase):
|
|||||||
'QUERY_STRING': 'profile=all&format=json',
|
'QUERY_STRING': 'profile=all&format=json',
|
||||||
'wsgi.input': wsgi_input}
|
'wsgi.input': wsgi_input}
|
||||||
resp = self.app(environ, self.start_response)
|
resp = self.app(environ, self.start_response)
|
||||||
self.assertTrue(resp[0].find('<html>') > 0, resp)
|
self.assertTrue(resp[0].find(b'<html>') > 0, resp)
|
||||||
self.assertEqual(self.got_statuses, ['200 OK'])
|
self.assertEqual(self.got_statuses, ['200 OK'])
|
||||||
self.assertEqual(self.headers, [('content-type', 'text/html')])
|
self.assertEqual(self.headers, [('content-type', 'text/html')])
|
||||||
wsgi_input = BytesIO(body + b'&plot=plot')
|
wsgi_input = BytesIO(body + b'&plot=plot')
|
||||||
@ -144,12 +144,12 @@ class TestProfileMiddleware(unittest.TestCase):
|
|||||||
else:
|
else:
|
||||||
resp = self.app(environ, self.start_response)
|
resp = self.app(environ, self.start_response)
|
||||||
self.assertEqual(self.got_statuses, ['500 Internal Server Error'])
|
self.assertEqual(self.got_statuses, ['500 Internal Server Error'])
|
||||||
wsgi_input = BytesIO(body + '&download=download&format=default')
|
wsgi_input = BytesIO(body + b'&download=download&format=default')
|
||||||
environ['wsgi.input'] = wsgi_input
|
environ['wsgi.input'] = wsgi_input
|
||||||
resp = self.app(environ, self.start_response)
|
resp = self.app(environ, self.start_response)
|
||||||
self.assertEqual(self.headers, [('content-type',
|
self.assertEqual(self.headers, [('content-type',
|
||||||
HTMLViewer.format_dict['default'])])
|
HTMLViewer.format_dict['default'])])
|
||||||
wsgi_input = BytesIO(body + '&download=download&format=json')
|
wsgi_input = BytesIO(body + b'&download=download&format=json')
|
||||||
environ['wsgi.input'] = wsgi_input
|
environ['wsgi.input'] = wsgi_input
|
||||||
resp = self.app(environ, self.start_response)
|
resp = self.app(environ, self.start_response)
|
||||||
self.assertTrue(self.headers == [('content-type',
|
self.assertTrue(self.headers == [('content-type',
|
||||||
|
1
tox.ini
1
tox.ini
@ -56,6 +56,7 @@ commands =
|
|||||||
test/unit/common/middleware/test_proxy_logging.py \
|
test/unit/common/middleware/test_proxy_logging.py \
|
||||||
test/unit/common/middleware/test_subrequest_logging.py \
|
test/unit/common/middleware/test_subrequest_logging.py \
|
||||||
test/unit/common/middleware/test_tempauth.py \
|
test/unit/common/middleware/test_tempauth.py \
|
||||||
|
test/unit/common/middleware/test_xprofile.py \
|
||||||
test/unit/common/ring \
|
test/unit/common/ring \
|
||||||
test/unit/common/test_base_storage_server.py \
|
test/unit/common/test_base_storage_server.py \
|
||||||
test/unit/common/test_bufferedhttp.py \
|
test/unit/common/test_bufferedhttp.py \
|
||||||
|
Loading…
Reference in New Issue
Block a user