سلام
اول از همه می خواهیم تست های مربوط به بورد را (مثل فایل های تست مربوط به برنامۀ اکانت) کمی خوشگل کنیم! فولدر تست را ایجاد می کنیم و درون آن فایل خالیِ 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
بدون دیدگاه