Improve code coverage
This commit is contained in:
parent
ad36bf1d54
commit
fb600003d6
@ -3,10 +3,7 @@ import datetime
|
|||||||
from six import u
|
from six import u
|
||||||
import six
|
import six
|
||||||
|
|
||||||
try:
|
import xml.etree.ElementTree as et
|
||||||
import xml.etree.ElementTree as et
|
|
||||||
except ImportError:
|
|
||||||
import cElementTree as et
|
|
||||||
|
|
||||||
from simplegeneric import generic
|
from simplegeneric import generic
|
||||||
|
|
||||||
|
33
wsme/root.py
33
wsme/root.py
@ -28,6 +28,23 @@ html_body = u("""
|
|||||||
""")
|
""")
|
||||||
|
|
||||||
|
|
||||||
|
def default_prepare_response_body(request, results):
|
||||||
|
r = None
|
||||||
|
sep = None
|
||||||
|
for value in results:
|
||||||
|
if sep is None:
|
||||||
|
if isinstance(value, six.text_type):
|
||||||
|
sep = u('\n')
|
||||||
|
r = u('')
|
||||||
|
else:
|
||||||
|
sep = b('\n')
|
||||||
|
r = b('')
|
||||||
|
else:
|
||||||
|
r += sep
|
||||||
|
r += value
|
||||||
|
return r
|
||||||
|
|
||||||
|
|
||||||
class DummyTransaction:
|
class DummyTransaction:
|
||||||
def commit(self):
|
def commit(self):
|
||||||
pass
|
pass
|
||||||
@ -166,22 +183,6 @@ class WSRoot(object):
|
|||||||
return protocol.encode_error(context, infos)
|
return protocol.encode_error(context, infos)
|
||||||
|
|
||||||
def _handle_request(self, request):
|
def _handle_request(self, request):
|
||||||
def default_prepare_response_body(request, results):
|
|
||||||
r = None
|
|
||||||
sep = None
|
|
||||||
for value in results:
|
|
||||||
if sep is None:
|
|
||||||
if isinstance(value, six.text_type):
|
|
||||||
sep = u('\n')
|
|
||||||
r = u('')
|
|
||||||
else:
|
|
||||||
sep = b('\n')
|
|
||||||
r = b('')
|
|
||||||
else:
|
|
||||||
r += sep
|
|
||||||
r += value
|
|
||||||
return r
|
|
||||||
|
|
||||||
res = webob.Response()
|
res = webob.Response()
|
||||||
res_content_type = None
|
res_content_type = None
|
||||||
|
|
||||||
|
@ -149,6 +149,17 @@ class TestRestXML(wsme.tests.protocol.ProtocolTestCase):
|
|||||||
<atext>test</atext>
|
<atext>test</atext>
|
||||||
</value>""")
|
</value>""")
|
||||||
|
|
||||||
|
def test_encode_sample_params(self):
|
||||||
|
lang, content = self.root.protocols[0].encode_sample_params(
|
||||||
|
[('a', int, 2)], True)
|
||||||
|
assert lang == 'xml', lang
|
||||||
|
assert content == b('<parameters>\n <a>2</a>\n</parameters>'), content
|
||||||
|
|
||||||
|
def test_encode_sample_result(self):
|
||||||
|
lang, content = self.root.protocols[0].encode_sample_result(int, 2, True)
|
||||||
|
assert lang == 'xml', lang
|
||||||
|
assert content == b('<result>2</result>'), content
|
||||||
|
|
||||||
def test_nil_fromxml(self):
|
def test_nil_fromxml(self):
|
||||||
for dt in (
|
for dt in (
|
||||||
str, [int], {int: str}, bool,
|
str, [int], {int: str}, bool,
|
||||||
@ -158,6 +169,7 @@ class TestRestXML(wsme.tests.protocol.ProtocolTestCase):
|
|||||||
|
|
||||||
def test_nil_toxml(self):
|
def test_nil_toxml(self):
|
||||||
for dt in (
|
for dt in (
|
||||||
|
wsme.types.bytes,
|
||||||
[int], {int: str}, bool,
|
[int], {int: str}, bool,
|
||||||
datetime.date, datetime.time, datetime.datetime):
|
datetime.date, datetime.time, datetime.datetime):
|
||||||
x = et.tostring(toxml(dt, 'value', None))
|
x = et.tostring(toxml(dt, 'value', None))
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from wsme import WSRoot
|
from wsme import WSRoot
|
||||||
|
from wsme.root import default_prepare_response_body
|
||||||
|
|
||||||
|
from six import b, u
|
||||||
|
|
||||||
|
|
||||||
class TestRoot(unittest.TestCase):
|
class TestRoot(unittest.TestCase):
|
||||||
@ -13,3 +16,26 @@ class TestRoot(unittest.TestCase):
|
|||||||
|
|
||||||
txn = root.begin()
|
txn = root.begin()
|
||||||
txn.abort()
|
txn.abort()
|
||||||
|
|
||||||
|
def test_default_prepare_response_body(self):
|
||||||
|
default_prepare_response_body(None, [b('a')]) == b('a')
|
||||||
|
default_prepare_response_body(None, [b('a'), b('b')]) == b('a\nb')
|
||||||
|
default_prepare_response_body(None, [u('a')]) == u('a')
|
||||||
|
default_prepare_response_body(None, [u('a'), u('b')]) == u('a\nb')
|
||||||
|
|
||||||
|
def test_protocol_selection_error(self):
|
||||||
|
import wsme.protocols
|
||||||
|
|
||||||
|
class P(wsme.protocols.Protocol):
|
||||||
|
def accept(self, r):
|
||||||
|
raise Exception('test')
|
||||||
|
|
||||||
|
root = WSRoot()
|
||||||
|
root.addprotocol(P())
|
||||||
|
|
||||||
|
from webob import Request
|
||||||
|
req = Request.blank('/test?check=a&check=b&name=Bob')
|
||||||
|
res = root._handle_request(req)
|
||||||
|
assert res.status_int == 500
|
||||||
|
assert res.content_type == 'text/plain'
|
||||||
|
assert res.text == u('Error while selecting protocol: test'), req.text
|
||||||
|
Loading…
x
Reference in New Issue
Block a user