تست تگهای قالب
سلام
اول از همه می خواهیم تست های مربوط به بورد را (مثل فایل های تست مربوط به برنامۀ اکانت) کمی خوشگل کنیم! فولدر تست را ایجاد می کنیم و درون آن فایل خالیِ init__.py__ قرار می دهیم. فایل tests.py را درون فایل جدید کپی می کنیم و نام آن را به tests_views.py تغییر میدهیم. یک فایل خالی با نام test_templatetags.py هم می سازیم.
myproject/ |-- myproject/ | |-- accounts/ | |-- boards/ | | |-- migrations/ | | |-- templatetags/ | | |-- tests/ | | | |-- __init__.py | | | |-- test_templatetags.py <-- new file, empty for now | | | +-- test_views.py <-- our old file with all the tests | | |-- __init__.py | | |-- admin.py | | |-- apps.py | | |-- models.py | | +-- views.py | |-- myproject/ | |-- static/ | |-- templates/ | |-- db.sqlite3 | +-- manage.py +-- venv/
با توجه به تغییر آدرس فایل مربوط به تست، باید فایل جدید را از نظر آدرسدهی به روز کنیم.
boards/tests/test_views.py
from ..views import home, board_topics, new_topic from ..models import Board, Topic, Post from ..forms import NewTopicForm
اجرا می کنیم تا مطمئن شویم که درست کار می کند.
فایل جدید را ویرایش می کنیم.
boards/tests/test_templatetags.py
from django import forms from django.test import TestCase from ..templatetags.form_tags import field_type, input_class class ExampleForm(forms.Form): name = forms.CharField() password = forms.CharField(widget=forms.PasswordInput()) class Meta: fields = ('name', 'password') class FieldTypeTests(TestCase): def test_field_widget_type(self): form = ExampleForm() self.assertEquals('TextInput', field_type(form['name'])) self.assertEquals('PasswordInput', field_type(form['password'])) class InputClassTests(TestCase): def test_unbound_field_initial_state(self): form = ExampleForm() # unbound form self.assertEquals('form-control ', input_class(form['name'])) def test_valid_bound_field(self): form = ExampleForm({'name': 'john', 'password': '123'}) # bound form (field + data) self.assertEquals('form-control is-valid', input_class(form['name'])) self.assertEquals('form-control ', input_class(form['password'])) def test_invalid_bound_field(self): form = ExampleForm({'name': '', 'password': '123'}) # bound form (field + data) self.assertEquals('form-control is-invalid', input_class(form['name']))
ما یک کلاس از نوع فرم ایجاد کردیم و مثال هایی را ساخته ایم که سناریوهای مختلف از بکارگیری تگهای فرم را شامل شود.
python manage.py test
و این هم از خروجی:
Creating test database for alias 'default'... System check identified no issues (0 silenced). ................................ -------------------------------------------------------- Ran 32 tests in 0.846s OK Destroying test database for alias 'default'...
ترجمۀ اختصاصی توسط تمدن
مطلب بعدی: بازیابی پسورد | Password Reset
مطلب قبلی: ساخت تگِ دلخواه برای قالب | Custom Template Tags
دیدگاه خود را ثبت کنید
تمایل دارید در گفتگو شرکت کنید؟نظری بدهید!