Django тестирование ответа CSV
Я пишу простое приложение, задача которого состоит в том, чтобы получить данные из некоторого api, добавить их в базу данных и, наконец, загрузить эти данные и сгенерировать CSV файл. Его основная функциональность работает, но мне нужно написать модульные тесты, и я понятия не имею, на чем я должен сосредоточиться.
Это моя основная функция, задачей которой является вызов другой функции, которая сканирует и сохраняет данные в базу данных, а затем генерирует CSV файл.
def csv_output(request):
api_get_data()
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=users_tasks.csv'
writer = csv.writer(response)
writer.writerow(['User name', 'City', 'Task title', 'Task boolean'])
for task in Task.objects.all().order_by('user_id'):
user = User.objects.get(id=task.user_id)
writer.writerow([user.full_name, user.address.city, task.title, task.completed])
return response
Это функция, которая берет данные из api и сохраняет их в базе данных.
def api_get_data():
user_response = get_data_from_url('users')
if user_response:
for item in user_response:
obj_user, created_user = User.objects.update_or_create(
id=int(item.get('id')), defaults={
'full_name': item.get('name'),
'username': item.get('username'),
'email': item.get('email'),
'phone_number': item.get('phone'),
'website': item.get('website')
}
)
addr_items = item.get('address')
obj_address, created_address = Address.objects.update_or_create(
user=obj_user, defaults={
'street': addr_items.get('street'),
'suite': addr_items.get('suite'),
'city': addr_items.get('city'),
'zipcode': addr_items.get('zipcode')
}
)
task_response = get_data_from_url('todos')
if task_response:
for item in task_response:
task_obj, task_created = Task.objects.update_or_create(
user_id=item.get('userId'), id=item.get('id'), defaults={
'id': item.get('id'),
'title': item.get('title'),
'completed': item.get('completed')
}
)
Мой вопрос в том, на чем я должен сосредоточиться? У меня нет опыта тестирования, поэтому я не знаю, на что мне следует обратить внимание в случае с моей функцией.