تست تگ‌های قالب

سلام

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

 

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگو شرکت کنید؟
نظری بدهید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *