def get_object_as_yaml(o, cls, ignore_wrappers=False, complex_as=dict, encoding='utf8', polymorphic=False): prot = YamlDocument(ignore_wrappers=ignore_wrappers, complex_as=complex_as, polymorphic=polymorphic) ctx = FakeContext(out_document=[prot._object_to_doc(cls,o)]) prot.create_out_string(ctx, encoding) return ''.join(ctx.out_string)
def get_object_as_yaml(o, cls=None, ignore_wrappers=False, complex_as=dict, encoding="utf8", polymorphic=False): if cls is None: cls = o.__class__ prot = YamlDocument(ignore_wrappers=ignore_wrappers, complex_as=complex_as, polymorphic=polymorphic) ctx = FakeContext(out_document=[prot._object_to_doc(cls, o)]) prot.create_out_string(ctx, encoding) return "".join(ctx.out_string)
def get_object_as_yaml_doc(o, cls=None, ignore_wrappers=False, complex_as=dict, polymorphic=False): if cls is None: cls = o.__class__ prot = YamlDocument(ignore_wrappers=ignore_wrappers, complex_as=complex_as, polymorphic=polymorphic) return prot._object_to_doc(cls, o)
def test_invalid_input(self): class SomeService(ServiceBase): @srpc() def yay(): pass app = Application([SomeService], 'tns', in_protocol=YamlDocument(), out_protocol=YamlDocument()) server = ServerBase(app) initial_ctx = MethodContext(server, MethodContext.SERVER) initial_ctx.in_string = ['{'] ctx, = server.generate_contexts(initial_ctx) assert ctx.in_error.faultcode == 'Client.YamlDecodeError'
def _on_method_return_object(ctx): ctx.udc.session.commit() def _on_method_context_closed(ctx): if ctx.udc is not None: ctx.udc.session.close() user_service = TCrudService(User, 'user') application = Application( [user_service], tns='spyne.examples.sql_crud', in_protocol=HttpRpc(validator='soft'), out_protocol=YamlDocument() ) application.event_manager.add_listener('method_call', _on_method_call) application.event_manager.add_listener('method_return_object', _on_method_return_object) application.event_manager.add_listener("method_context_closed", _on_method_context_closed) if __name__ == '__main__': from wsgiref.simple_server import make_server wsgi_app = WsgiApplication(application) server = make_server('127.0.0.1', 8000, wsgi_app)
from spyne.test.protocol._test_dictdoc import TDictDocumentTest from spyne.protocol.yaml import YamlDocument from spyne import MethodContext from spyne.application import Application from spyne.decorator import srpc from spyne.service import ServiceBase from spyne.server import ServerBase from spyne.protocol.yaml import yaml yaml.dumps = yaml.dump yaml.loads = yaml.load TestYamlDocument = TDictDocumentTest(yaml, YamlDocument, YamlDocument().out_kwargs) class Test(unittest.TestCase): def test_invalid_input(self): class SomeService(ServiceBase): @srpc() def yay(): pass app = Application([SomeService], 'tns', in_protocol=YamlDocument(), out_protocol=YamlDocument()) server = ServerBase(app)
import unittest from spyne.test.protocol._test_dictdoc import TDictDocumentTest from spyne.protocol.yaml import YamlDocument from spyne import MethodContext from spyne.application import Application from spyne.decorator import srpc from spyne.service import ServiceBase from spyne.server import ServerBase from spyne.protocol.yaml import yaml yaml.dumps = yaml.dump yaml.loads = yaml.load TestYamlDocument = TDictDocumentTest(yaml, YamlDocument, YamlDocument().out_kwargs) class Test(unittest.TestCase): def test_invalid_input(self): class SomeService(ServiceBase): @srpc() def yay(): pass app = Application([SomeService], 'tns', in_protocol=YamlDocument(), out_protocol=YamlDocument()) server = ServerBase(app)
def main(): global protocols rest = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=HttpRpc()) xml = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=XmlDocument()) soap = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=Soap11()) html = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=HtmlMicroFormat()) png = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=PngClock()) svg = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=SvgClock()) json = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=JsonDocument()) jsoni = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=JsonDocument( ignore_wrappers=True)) jsonl = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=JsonDocument(complex_as=list)) jsonil = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=JsonDocument( ignore_wrappers=True, complex_as=list)) msgpack_doc = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=MessagePackDocument()) msgpack_rpc = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=MessagePackRpc()) yaml = Application([MultiProtService], tns=tns, in_protocol=HttpRpc(), out_protocol=YamlDocument()) dyn = Application([DynProtService], tns=tns, in_protocol=HttpRpc(validator='soft'), out_protocol=HttpRpc()) DynProtService.protocols = { 'json': Tsetprot(JsonDocument(dyn)), 'xml': Tsetprot(XmlDocument(dyn)), 'yaml': Tsetprot(YamlDocument(dyn)), 'soap': Tsetprot(Soap11(dyn)), 'html': Tsetprot(HtmlMicroFormat(dyn)), 'png': Tsetprot(PngClock(dyn)), 'svg': Tsetprot(SvgClock(dyn)), 'msgpack': Tsetprot(MessagePackDocument(dyn)), } root = WsgiMounter({ 'rest': rest, 'xml': xml, 'soap': soap, 'html': html, 'png': png, 'svg': svg, 'json': json, 'jsoni': jsoni, 'jsonl': jsonl, 'jsonil': jsonil, 'mpd': msgpack_doc, 'mprpc': msgpack_rpc, 'yaml': yaml, 'dyn': dyn, }) from wsgiref.simple_server import make_server server = make_server(host, port, root) logging.basicConfig(level=logging.DEBUG) logging.info("listening to http://%s:%d" % (host, port)) logging.info("navigate to e.g. http://%s:%d/json2/get_utc_time" % (host, port)) logging.info(" or: http://%s:%d/xml/get_utc_time" % (host, port)) return server.serve_forever()