JSON-ответ от сервера-сваггера, полученный в одинарных кавычках, проверка фреймворка робота завершается с ошибкой json.loads - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь проверить мой код сервера swagger с помощью robot-framework. Обработчик сервера возвращает словарь (или объект json?). Робот-фреймворк пытается проверить ответ, но выдает эту ошибку.

ошибка: JSONDecodeError: Ожидается имя свойства, заключенное в двойные кавычки: строка 1, столбец 2 (символ 1)

Проблема в том, что ответ содержит одинарные кавычки вместо двойных (или ответ не идентифицирован как json), поэтому json.loads завершается ошибкой.

Я попытался добавить заголовки content-type и mimetype как 'application / json'. Jsonify пробной колбы.

Вот часть кода, которая возвращает ответ.

def grants_post(project, GrantRequest, Accept=None, Content_Type=None, Authorization=None):
    # code that creates a large dictionary called rsp.

    grant_uri_id = str(uuid.uuid4())
    AsyncGrantResponses[grant_uri_id] = rsp
    print(rsp['output'])
    return rsp['output'], 201, {'location': "sol003/grant/" + project + "/grant/v1/grants/" + grant_uri_id , 'mimetype' : "application/json" }

Вот результаты работы робота. После проверки схемы это делает json.loads. Используется «.......» в ч / б, так как данные большие.

Создание нового гранта - синхронный режим
| FAIL | Не удалось оценить выражение json.loads('''{'extVirtualLinks': [{'vimConnectionId': 'vimAccount', 'extCps':........................... 'id': '718bb9a2-37dd-4238-a393-7936a8b53086'}'''): JSONDecodeError: Ожидается имя свойства в двойных кавычках: строка 1, столбец 2 (символ 1)

Я думаю, что ожидаемый результат должен иметь двойные кавычки вместо одинарных кавычек в данных.

1 Ответ

0 голосов
/ 11 января 2019

Проблема была с кодом набора тестов роботов, я изменил эту строку,

${json} = evaluate json.loads('''${result}''') json

до

${json} = evaluate json.loads(json.dumps(${result})) json

Теперь все хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...