Skip to content

Commit a9ed8fc

Browse files
committed
update tests
1 parent 8966e9f commit a9ed8fc

File tree

10 files changed

+414
-112
lines changed

10 files changed

+414
-112
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[
2+
{
3+
"model": "labels.label",
4+
"pk": 1,
5+
"fields": {
6+
"name": "label_test",
7+
"created_at": "2025-06-09T10:12:48.421Z"
8+
}
9+
}
10+
]

task_manager/labels/tests.py

Lines changed: 66 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,77 @@
1-
# tasks/tests/test_labels.py
21
from django.test import TestCase
3-
from django.urls import reverse
2+
from task_manager.users.models import MyUser
43
from task_manager.labels.models import Label
5-
from task_manager.tasks.models import Task
6-
from django.contrib.auth import get_user_model
4+
from django.urls import reverse
5+
from django import test
6+
77

8-
User = get_user_model()
8+
@test.modify_settings(
9+
MIDDLEWARE={
10+
"remove": [
11+
"rollbar.contrib.django.middleware.RollbarNotifierMiddleware",
12+
]
13+
}
14+
)
15+
class LabelsTest(TestCase):
16+
fixtures = ["user.json"]
917

10-
class LabelCRUDTest(TestCase):
1118
def setUp(self):
12-
self.label = Label.objects.create(name='Bug')
13-
self.user = User.objects.create_user(username='testuser', password='12345')
14-
self.client.login(username='testuser', password='12345')
19+
self.label = Label.objects.create(name="test")
20+
self.user = MyUser.objects.last()
1521

16-
def test_label_list(self):
17-
response = self.client.get(reverse('label-list'))
22+
def test_label_page(self):
23+
response = self.client.get(reverse("labels:label_list"))
1824
self.assertEqual(response.status_code, 200)
19-
self.assertContains(response, 'Bug')
25+
self.assertTemplateUsed(response, template_name="labels/label_list.html")
2026

21-
def test_label_create(self):
22-
response = self.client.post(reverse('label-create'), {'name': 'Feature'})
27+
def test_create_label(self):
28+
self.assertEqual(Label.objects.count(), 1)
29+
response = self.client.post(
30+
reverse("labels:create_label"), {"name": "test_label"}
31+
)
2332
self.assertEqual(response.status_code, 302)
24-
self.assertTrue(Label.objects.filter(name='Feature').exists())
33+
self.assertEqual(Label.objects.count(), 2)
34+
self.assertEqual(Label.objects.last().name, "test_label")
35+
36+
def test_update_label_unauthorized(self):
37+
self.client.logout()
38+
response = self.client.post(
39+
reverse("labels:update_label", kwargs={"pk": self.label.id}),
40+
{"name": "bipki"},
41+
)
42+
self.assertEqual(response.status_code, 302)
43+
self.assertEqual(response.url, reverse("labels:label_list"))
44+
self.label.refresh_from_db()
45+
self.assertEqual(self.label.name, "test")
46+
47+
def test_update_label_authorized(self):
48+
self.client.force_login(self.user)
2549

26-
def test_label_delete_with_tasks(self):
27-
task = Task.objects.create(title='Test', author=self.user)
28-
task.labels.add(self.label)
29-
response = self.client.post(reverse('label-delete', args=[self.label.id]))
50+
response = self.client.get(
51+
reverse("labels:update_label", kwargs={"pk": self.label.id})
52+
)
53+
self.assertEqual(response.status_code, 200)
54+
self.assertTemplateUsed(response, template_name="labels/update.html")
55+
56+
response = self.client.post(
57+
reverse("labels:update_label", kwargs={"pk": self.label.id}),
58+
{"name": "bipki"},
59+
)
60+
self.assertEqual(response.status_code, 302)
61+
self.assertEqual(response.url, reverse("labels:label_list"))
62+
self.label.refresh_from_db()
63+
self.assertEqual(self.label.name, "bipki")
64+
self.client.logout()
65+
66+
def test_delete_label(self):
67+
self.client.force_login(self.user)
68+
response = self.client.get(
69+
reverse("labels:delete_label", kwargs={"pk": self.label.id})
70+
)
71+
self.assertEqual(response.status_code, 200)
72+
self.assertTemplateUsed(response, template_name="labels/delete.html")
73+
response = self.client.post(
74+
reverse("labels:delete_label", kwargs={"pk": self.label.id})
75+
)
3076
self.assertEqual(response.status_code, 302)
31-
self.assertTrue(Label.objects.filter(id=self.label.id).exists()) # Метка не удалена
77+
self.assertEqual(Label.objects.count(), 0)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
[
2+
{
3+
"model": "statuses.status",
4+
"pk": 100,
5+
"fields": {
6+
"name": "status_test",
7+
"created_at": "2022-10-05T10:32:12.747Z"
8+
}
9+
}
10+
]

task_manager/statuses/tests.py

Lines changed: 68 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,76 @@
11
from django.test import TestCase
2-
from django.urls import reverse
3-
from django.contrib.messages import get_messages
4-
from django.contrib.auth import get_user_model
2+
from task_manager.users.models import MyUser
53
from task_manager.statuses.models import Status
4+
from django.urls import reverse
5+
from django import test
6+
67

7-
class StatusUpdateTest(TestCase):
8+
@test.modify_settings(
9+
MIDDLEWARE={
10+
"remove": [
11+
"rollbar.contrib.django.middleware.RollbarNotifierMiddleware",
12+
]
13+
}
14+
)
15+
class StatusesTest(TestCase):
816
def setUp(self):
9-
self.user = get_user_model().objects.create_user(username='testuser', password='12345')
10-
self.client.force_login(self.user)
11-
self.status = Status.objects.create(name='Initial Status')
17+
self.user = MyUser.objects.create_user(
18+
username="test", password="12test12", first_name="bla", last_name="blabla"
19+
)
20+
self.status = Status.objects.create(name="test11")
1221

13-
def test_status_update(self):
14-
url = reverse('status-update', args=[self.status.id])
15-
data = {'name': 'Обновлённый статус'}
16-
response = self.client.post(url, data)
17-
self.assertEqual(response.status_code, 302) # редирект
22+
def test_status_page(self):
23+
response = self.client.get(reverse("statuses:status_list"))
24+
self.assertEqual(response.status_code, 200)
25+
self.assertTemplateUsed(response, template_name="statuses/status_list.html")
1826

19-
# Следующий запрос — страница списка, куда редиректит
20-
response = self.client.get(reverse('status-list'))
21-
messages = list(get_messages(response.wsgi_request))
27+
def test_create_status(self):
28+
response = self.client.post(
29+
reverse("statuses:create_status"), {"name": "test_status228"}
30+
)
31+
self.assertEqual(response.status_code, 302)
32+
self.assertEqual(Status.objects.count(), 2)
33+
self.assertEqual(Status.objects.last().name, "test_status228")
2234

23-
print('Сообщения:', [str(m) for m in messages]) # Для отладки
35+
def test_update_status_unauthorized(self):
36+
response = self.client.post(
37+
reverse("statuses:update_status", kwargs={"pk": self.status.id}),
38+
{"name": "bipki"},
39+
)
40+
self.assertEqual(response.status_code, 302)
41+
self.assertEqual(response.url, reverse("statuses:status_list"))
42+
self.status.refresh_from_db()
43+
self.assertEqual(self.status.name, "test11")
2444

25-
self.assertTrue(any('Статус успешно обновлен.' in str(m) for m in messages))
45+
def test_update_status_authorized(self):
46+
status = Status.objects.create(name="test111")
47+
self.client.force_login(self.user)
48+
49+
response = self.client.get(
50+
reverse("statuses:update_status", kwargs={"pk": self.status.id})
51+
)
52+
self.assertEqual(response.status_code, 200)
53+
self.assertTemplateUsed(response, template_name="statuses/update.html")
54+
55+
response = self.client.post(
56+
reverse("statuses:update_status", kwargs={"pk": status.id}),
57+
{"name": "bipki"},
58+
)
59+
self.assertEqual(response.status_code, 302)
60+
self.assertEqual(response.url, reverse("statuses:status_list"))
61+
status.refresh_from_db()
62+
self.assertEqual(status.name, "bipki")
63+
self.client.logout()
64+
65+
def test_delete_status(self):
66+
self.client.force_login(self.user)
67+
response = self.client.get(
68+
reverse("statuses:delete_status", kwargs={"pk": self.status.id})
69+
)
70+
self.assertEqual(response.status_code, 200)
71+
self.assertTemplateUsed(response, template_name="statuses/delete.html")
72+
response = self.client.post(
73+
reverse("statuses:delete_status", kwargs={"pk": self.status.id})
74+
)
75+
self.assertEqual(response.status_code, 302)
76+
self.assertEqual(Status.objects.count(), 0)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[
2+
{
3+
"model": "tasks.task",
4+
"pk": 77,
5+
"fields": {
6+
"name": "task_test",
7+
"description": "description for task_test",
8+
"status": 100,
9+
"executor": 777,
10+
"author": 777,
11+
"created_at": "2025-06-06T08:08:00.151Z"
12+
}
13+
}
14+
]
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Generated by Django 5.2.1 on 2025-06-21 19:43
2+
3+
import django.db.models.deletion
4+
from django.conf import settings
5+
from django.db import migrations, models
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('tasks', '0002_initial'),
12+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
13+
]
14+
15+
operations = [
16+
migrations.AlterField(
17+
model_name='task',
18+
name='executor',
19+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='executorZz', to=settings.AUTH_USER_MODEL, verbose_name='Исполнитель'),
20+
),
21+
]

0 commit comments

Comments
 (0)