coreapi: не могу получить схему - PullRequest
0 голосов
/ 19 марта 2020

python 3.7

У меня есть приложение python, для которого я запускаю тесты:

$ python -m unittest

код пакета выглядит так:

import coreapi
from coreapi import codecs

class myClient():

    myApiUrl = None

    client = None

    def __init__(self, myApiUrl, authenticationToken):

        self.myApiUrl = myApiUrl

        auth = coreapi.auth.TokenAuthentication(
            scheme='Token',
            token=authenticationToken
        )

        decoders = [
            codecs.CoreJSONCodec(),
            codecs.JSONCodec()
        ]

        self.client = coreapi.Client(auth=auth, decoders=decoders)


    def getSomething(self):
        ....at this point self.client.decoders are present....
        schema = self.client.get(self.myApiUrl)
        .......blah-blah....

Этот тестовый запуск заканчивается с этой ошибкой:

ОШИБКА: test_doFirstTest (myclient.tests.SomeTestClass)

Traceback (most recent call last):    File "/usr/src/app/myclient/tests.py", line 82, in test_doFirstTest

     output = client.test_doFirstTest()    File "/usr/src/app/myclient/myClient.py", line 42, in getSomething

     schema = self.client.get(self.myApiUrl)    File "/opt/conda/lib/python3.7/site-packages/coreapi/client.py", line 136, in get

     return transport.transition(link, decoders, force_codec=force_codec)    File "/opt/conda/lib/python3.7/site-packages/coreapi/transports/http.py", line 380, in transition

     result = _decode_result(response, decoders, force_codec)    File "/opt/conda/lib/python3.7/site-packages/coreapi/transports/http.py", line 284, in _decode_result

     codec = utils.negotiate_decoder(decoders, content_type)    File "/opt/conda/lib/python3.7/site-packages/coreapi/utils.py", line 207, in negotiate_decoder

     raise exceptions.NoCodecAvailable(msg)  coreapi.exceptions.NoCodecAvailable: Unsupported media in Content-Type header 'text/html'

Я понимаю, что это говорит мне, что он получил текст / html вместо json (может быть, пустая строка?), Но почему? Я пока не делаю никаких запросов, я делаю подготовительный шаг для получения объекта схемы.

И это не проблема подключения, когда он вообще не может подключиться, он выдает другую ошибку.

Спасибо

1 Ответ

0 голосов
/ 23 марта 2020

Хорошо, это не имеет ничего общего с coreapi, codex, unittest, запросами или чем-либо, о чем я мог подумать. Причиной этой ошибки является то, что какой-то задействованный контейнер docker незаметно завершает работу после запуска, поскольку другой контейнер docker, от которого зависит первый, не был запущен. Так что манифестация оказалась непостижимой.

...