60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
"""
|
||
API тесты для домашних заданий.
|
||
"""
|
||
import pytest
|
||
from rest_framework import status
|
||
from apps.homework.models import Homework, HomeworkSubmission
|
||
|
||
|
||
@pytest.mark.django_db
|
||
@pytest.mark.api
|
||
class TestHomeworkAPI:
|
||
"""Тесты API домашних заданий."""
|
||
|
||
def test_list_homeworks(self, authenticated_client, mentor_user):
|
||
"""Тест получения списка домашних заданий."""
|
||
Homework.objects.create(
|
||
mentor=mentor_user,
|
||
title='Задание 1',
|
||
description='Описание',
|
||
status='published'
|
||
)
|
||
|
||
response = authenticated_client.get('/api/homework/homeworks/')
|
||
|
||
assert response.status_code == status.HTTP_200_OK
|
||
assert len(response.data['results']) > 0
|
||
|
||
def test_create_homework(self, authenticated_client, mentor_user):
|
||
"""Тест создания домашнего задания."""
|
||
data = {
|
||
'title': 'Новое задание',
|
||
'description': 'Описание задания',
|
||
'max_score': 100
|
||
}
|
||
|
||
response = authenticated_client.post('/api/homework/homeworks/', data)
|
||
|
||
assert response.status_code == status.HTTP_201_CREATED
|
||
assert response.data['title'] == 'Новое задание'
|
||
|
||
def test_submit_homework(self, authenticated_client_user, mentor_user, client_user):
|
||
"""Тест отправки решения домашнего задания."""
|
||
homework = Homework.objects.create(
|
||
mentor=mentor_user,
|
||
title='Задание',
|
||
description='Описание',
|
||
status='published'
|
||
)
|
||
|
||
data = {
|
||
'homework': homework.id,
|
||
'text': 'Мое решение'
|
||
}
|
||
|
||
response = authenticated_client_user.post('/api/homework/submissions/', data)
|
||
|
||
assert response.status_code == status.HTTP_201_CREATED
|
||
assert response.data['text'] == 'Мое решение'
|
||
|