def test_interface_descriptor__from_interface(interface: Interface): d = InterfaceDescriptor.from_interface(interface) assert d.version == ebonite.__version__ sig = Signature(args=[ Field('arg1', Container(5), False) ], output=Field(None, Container(5), False)) assert d.methods == [InterfaceMethodDescriptor.from_signature('method1', sig)]
def test_interface_descriptor__to_dict(interface: Interface): d = InterfaceDescriptor.from_interface(interface) assert d.to_dict() == { 'version': ebonite.__version__, 'methods': [{ 'name': 'method1', 'args': { 'arg1': {'field': 5, 'type': 'test_container'} }, 'out_type': {'field': 5, 'type': 'test_container'} }]}
def create_schema_route(app, interface: Interface): schema = InterfaceDescriptor.from_interface(interface).to_dict() rlogger.debug('Creating /interface.json route with schema: %s', schema) app.add_url_rule('/interface.json', 'schema', lambda: jsonify(schema))
def create_schema_route(app, interface: Interface): schema = InterfaceDescriptor.from_interface(interface).to_dict() rlogger.debug('Creating /interface.json route with schema: %s', schema) app.router.add_get('/interface.json', lambda request: web.json_response(schema))
def _interface_factory(self) -> InterfaceDescriptor: resp = requests.get(f'{self.base_url}/interface.json') resp.raise_for_status() return InterfaceDescriptor.from_dict(resp.json())