Ошибка при загрузке файла "," ошибка ": [" локальная переменная 'upload_file_path', указанная перед присваиванием "- в каратэ для метода записи с файлом" .yaml " - PullRequest
1 голос
/ 26 февраля 2020

Простой тест для публикации '.yaml' на сервисе, размещенный на моей локальной машине.

Добавление: Тест

Background:
 * url 'http://localhost:0000/upload' ..........(anonymized)

Scenario: Test
  Given path 'contract'
  And multipart entity read('test.yaml')        ..........(anonymized)
  And multipart field digest = '123123dedwd2rd2d23e2d23e2d3'      .........(anonymized)
  And header Content-Type = 'multipart/related'
  When method post
  Then status 200

Ответ {"message":"Error while uploading file","error":["local variable 'upload_file_path' referenced before assignment"],"success":false}

Нужна помощь, чтобы понять, на какую локальную переменную upload_file_path ссылаются здесь ...

1 Ответ

1 голос
/ 26 февраля 2020

Карате автоматически преобразует *.yaml файлы в JSON по умолчанию, потому что это наиболее распространенный вариант использования, но вы пытаетесь выполнить загрузку файла. У вас есть 2 варианта.

a) Переименуйте файл во что-то другое, например, *.txt

b) используйте karate.readAsString() API

And multipart entity karate.readAsString('test.yaml') 

РЕДАКТИРОВАТЬ: согласно комментарию

Чтобы передать пользовательский Content-Type, вы можете сделать 2 шага:

* def temp = karate.readAsString('test.yaml')
* multipart file file = { value : '#(temp)', filename: 'myname.yml', contentType: 'application/yaml' }
...