Files
deb-python-wsme/wsme/tests/test_protocols.py
Ryan Petrello f91767bf1e pep8 fixes, including a declaration in tox.ini for running flake8
Change-Id: I2adc6a5cbd76edd16e6079046b67b8fc10bf1671
2013-09-05 11:15:27 -04:00

71 lines
1.8 KiB
Python

# encoding=utf8
import unittest
from wsme import WSRoot
from wsme.protocol import getprotocol, CallContext, Protocol
import wsme.protocol
class DummyProtocol(Protocol):
name = 'dummy'
content_types = ['', None]
def __init__(self):
self.hits = 0
def accept(self, req):
return True
def iter_calls(self, req):
yield CallContext(req)
def extract_path(self, context):
return ['touch']
def read_arguments(self, context):
self.lastreq = context.request
self.hits += 1
return {}
def encode_result(self, context, result):
return str(result)
def encode_error(self, context, infos):
return str(infos)
def test_getprotocol():
try:
getprotocol('invalid')
assert False, "ValueError was not raised"
except ValueError:
pass
class TestProtocols(unittest.TestCase):
def test_register_protocol(self):
wsme.protocol.register_protocol(DummyProtocol)
assert wsme.protocol.registered_protocols['dummy'] == DummyProtocol
r = WSRoot()
assert len(r.protocols) == 0
r.addprotocol('dummy')
assert len(r.protocols) == 1
assert r.protocols[0].__class__ == DummyProtocol
r = WSRoot(['dummy'])
assert len(r.protocols) == 1
assert r.protocols[0].__class__ == DummyProtocol
def test_Protocol(self):
p = wsme.protocol.Protocol()
assert p.iter_calls(None) is None
assert p.extract_path(None) is None
assert p.read_arguments(None) is None
assert p.encode_result(None, None) is None
assert p.encode_sample_value(None, None) == ('none', 'N/A')
assert p.encode_sample_params(None) == ('none', 'N/A')
assert p.encode_sample_result(None, None) == ('none', 'N/A')