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')
                }
            )

Мой вопрос в том, на чем я должен сосредоточиться? У меня нет опыта тестирования, поэтому я не знаю, на что мне следует обратить внимание в случае с моей функцией.

Вернуться на верх