Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exceção ao acessar endpoint /__api__ #190

Open
gustavofonseca opened this issue Oct 3, 2019 · 1 comment
Open

Exceção ao acessar endpoint /__api__ #190

gustavofonseca opened this issue Oct 3, 2019 · 1 comment
Labels
bug Something isn't working

Comments

@gustavofonseca
Copy link
Collaborator

gustavofonseca commented Oct 3, 2019

Descrição da tarefa

A exceção cornice_swagger.converters.exceptions.NoSuchConverter é lançada ao acessar o endpoint /__api__ com o código rodando na branch master.

Traceback

gustavofonseca@P239:document-store (master) pserve development.ini
Starting server in PID 4127.
Serving on http://0.0.0.0:6543
2019-10-03 18:03:21,789 ERROR [waitress][waitress] Exception while serving /__api__
Traceback (most recent call last):
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/waitress/channel.py", line 356, in service
    task.service()
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/waitress/task.py", line 176, in service
    self.execute()
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/waitress/task.py", line 447, in execute
    app_iter = self.channel.server.application(env, start_response)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/router.py", line 270, in __call__
    response = self.execution_policy(environ, self)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/router.py", line 278, in default_execution_policy
    return request.invoke_exception_view(reraise=True)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/view.py", line 748, in invoke_exception_view
    reraise_(*exc_info)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/compat.py", line 147, in reraise
    raise value.with_traceback(tb)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/router.py", line 276, in default_execution_policy
    return router.invoke_request(request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/router.py", line 249, in invoke_request
    response = handle_request(request)
  File "/Users/gustavofonseca/prj/document-store/documentstore/pyramid_prometheus.py", line 37, in tween
    response = handler(request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/tweens.py", line 41, in excview_tween
    response = _error_handler(request, exc)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/tweens.py", line 12, in _error_handler
    response = request.invoke_exception_view(exc_info)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/view.py", line 744, in invoke_exception_view
    request_iface=request_iface.combined,
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/view.py", line 642, in _call_view
    response = view_callable(context, request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/viewderivers.py", line 410, in viewresult_to_response
    result = view(context, request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/tweens.py", line 39, in excview_tween
    response = handler(request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/router.py", line 156, in handle_request
    view_name
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/view.py", line 642, in _call_view
    response = view_callable(context, request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/config/views.py", line 181, in __call__
    return view(context, request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/viewderivers.py", line 390, in attr_view
    return view(context, request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/viewderivers.py", line 368, in predicate_wrapper
    return view(context, request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/viewderivers.py", line 439, in rendered_view
    result = view(context, request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/pyramid/viewderivers.py", line 148, in _requestonly_view
    response = view(request)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice/service.py", line 502, in wrapper
    response = view_(request)
  File "/Users/gustavofonseca/prj/document-store/documentstore/restfulapi.py", line 1043, in openAPI_spec
    return doc.generate("Kernel", "0.1")
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/swagger.py", line 427, in generate
    paths, tags = self._build_paths()
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/swagger.py", line 500, in _build_paths
    op = self._extract_operation_from_view(view, args)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/swagger.py", line 644, in _extract_operation_from_view
    parameters = self.parameters.from_schema(schema)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/swagger.py", line 132, in from_schema
    param_schema)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/parameters.py", line 100, in __call__
    converted = converter.convert(schema_node, self.definition_handler)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/parameters.py", line 73, in convert
    schema = definition_handler(schema_node)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/schema.py", line 271, in __call__
    converted = converter(schema_node)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/schema.py", line 136, in __call__
    converted = self.convert_type(schema_node)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/schema.py", line 207, in convert_type
    properties[sub_node.name] = self.dispatcher(sub_node)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/schema.py", line 271, in __call__
    converted = converter(schema_node)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/schema.py", line 136, in __call__
    converted = self.convert_type(schema_node)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/schema.py", line 207, in convert_type
    properties[sub_node.name] = self.dispatcher(sub_node)
  File "/Users/gustavofonseca/.virtualenvs/document-store/lib/python3.7/site-packages/cornice_swagger-0.7.0-py3.7.egg/cornice_swagger/converters/schema.py", line 268, in __call__
    raise NoSuchConverter
cornice_swagger.converters.exceptions.NoSuchConverter

Depois de uma breve análise detectei que o problema ocorre devido ao uso de colander.TupleSchema na linha

class range(colander.TupleSchema):
. colander.TupleSchema não é suportado pelo pyramid-swagger (veja aqui a lista de conversores suportados)

O commit que inseriu o bug foi 342c567

@gustavofonseca gustavofonseca added the bug Something isn't working label Oct 3, 2019
@gustavofonseca
Copy link
Collaborator Author

Relacionado ao ticket #171

@jamilatta jamilatta removed their assignment Feb 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants