تست Login Required
سلام
مثل همیشه نوبت نوشتن فایل تست مربوط به دکوراتور login_required@
شده اما قبل از آن می خواهیم فایل boards/tests/test_views.py را اندکی دستکاری کنیم.
می خواهیم این فایل را به سه فایل جداگانه تقسیم کنیم.
- test_view_home.py شامل کلاس HomeTests (مشاهده کد کامل)
- test_view_board_topics.py شامل کلاس BoardTopicsTests (مشاهده کد کامل)
- test_view_new_topic.py شامل کلاس NewTopicTests (مشاهده کد کامل)
myproject/ |-- myproject/ | |-- accounts/ | |-- boards/ | | |-- migrations/ | | |-- templatetags/ | | |-- tests/ | | | |-- __init__.py | | | |-- test_templatetags.py | | | |-- test_view_home.py <-- here | | | |-- test_view_board_topics.py <-- here | | | +-- test_view_new_topic.py <-- and here | | |-- __init__.py | | |-- admin.py | | |-- apps.py | | |-- models.py | | +-- views.py | |-- myproject/ | |-- static/ | |-- templates/ | |-- db.sqlite3 | +-- manage.py +-- venv/
فایل تست را اجرا می کنیم تا از همه چیز خاطر جمع شویم.
سپس یک نمونه آزمایشی را به test_view_new_topic.py اضافه می کنیم تا از کارکرد login_required@
مطمئن شویم.
boards/tests/test_view_new_topic.py (مشاهده کد کامل)
from django.test import TestCase from django.urls import reverse from ..models import Board class LoginRequiredNewTopicTests(TestCase): def setUp(self): Board.objects.create(name='Django', description='Django board.') self.url = reverse('new_topic', kwargs={'pk': 1}) self.response = self.client.get(self.url) def test_redirection(self): login_url = reverse('login') self.assertRedirects(self.response, '{login_url}?next={url}'.format(login_url=login_url, url=self.url))
در مورد آزمایشی بالا سعی کردیم تا یک درخواست را به new topic و بدون ورود کاربر ارسال کنیم و همانگونه که انتظار می رود درخواست ما به ویوی لاگین انتقال می یابد.
ترجمۀ اختصاصی توسط تمدن
مطلب بعدی: دسترسی به کاربر معتبر
مطلب قبلی: ویوهای محافظت شده | Protecting Views
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!