Я создал небольшие микросервисы, к которым я обращаюсь через REST API (flask -restplus).
Для тестирования во время разработки я использовал следующую команду curl для проверки загрузки файла:
curl -i 'http://127.0.0.1:5000/nlp/project_a/load?text=text&sentiment=airline_sentiment' -F file=@./Tweets.csv -X POST -H 'enctype:multipart/form-data ; Content-Type:multipart/form-data'
Теперь я хочу превратить все это в модульный тест. Мой тест выглядит так:
import unittest
import os
from api import app
class NlpPipeline(unittest.TestCase):
def setUp(self):
self.app = app.test_client()
def test_complete_pipeline(self):
...
# Load Data
assert os.path.exists('../working/project_a') == 1
response = self.app.post('/nlp/project_a/load?text=text&sentiment=airline_sentiment', headers={'enctype': 'multipart/form-data', 'Content-Type': 'multipart/form-data'}, data='../data/Tweets.csv')
self.assertEqual(200, response.status_code)
assert os.path.isfile('../working/project_a/project_a_raw.feather') == 1
...
, но, к сожалению, ничего не происходит, поэтому файл не создается. С помощью команды curl все работает нормально. У вас есть представление о том, что я делаю неправильно?
Вот ссылка на полный проект, если уместно:
https://github.com/Modius22/nlp-pipeline/tree/add_testing
ветка add_testing.