Я хотел бы написать модульный тест для представления в приложении Django REST Framework. Тест должен загрузить файл CSV , используя POST.
@staticmethod
def _file_upload(client, string, args, file_name):
base_path = os.path.dirname(os.path.realpath(__file__))
with open(base_path + file_name, 'rb') as data:
data = {
'file': data
}
response = client.post(reverse(string, args=[args]), data, format = "multipart")
return response.status_code, response.data
Приведенный выше код, который, очевидно, не работает, показывает следующую ошибку
Отсутствует имя файла. Запрос должен включать заголовок Content-Disposition с параметром имени файла.
Следующий код - тот, который я хочу проверить с помощью модульного тестирования.
class ChartOfAccounts(views.APIView):
parser_classes = (JSONParser, FileUploadParser)
def post(self, request, pk, *args, **kwargs):
request.FILES['file'].seek(0)
csv_data = CSVUtils.format_request_csv(request.FILES['file'])
try:
coa_data = CSVUtils.process_chart_of_accounts_csv(company, csv_data)
serializer = CoASerializer(coa_data, many=True)
if len(serializer.data) > 0:
return Utils.dispatch_success(request, serializer.data)
except Exception as e:
error = ["%s" % e]
return Utils.dispatch_failure(request, 'DATA_PARSING_ISSUE', error)
Любая помощь в этом отношении приветствуется. Заранее спасибо