即使只是学习 django 和 testwriting,所以我需要一点确认。我想知道以下测试是它的“正确”拼写。
测试视图.py
@pytest.mark.django_db
def test_create_form(client):
form_data = {'title': 'Test Title', 'tags': 'HTML', 'content': 'New Content for lambs'}
response = client.post(reverse("public:create"), form_data, follow=True)
assert b'Test Title' in response.content
@pytest.mark.django_db
def test_context_create(client):
form_data = {'title': 'Test Title', 'tags': 'HTML', 'content': 'New Content for lambs'}
response = client.post(reverse("public:create"), form_data)
assert response.context['form'].cleaned_data['title'] == 'Test Title'
@pytest.mark.django_db
def test_TITLE_is_blank(client):
form_data = {'title': '', 'tags': 'HTML', 'content': 'New Content for lambs'}
response = client.post(reverse("public:create"), form_data)
assert response.context['form'].cleaned_data['title'] == ''
@pytest.mark.django_db
def test_CONTENT_is_blank(client):
form_data = {'title': 'Test Title', 'tags': 'HTML', 'content': ''}
response = client.post(reverse("public:create"), form_data)
assert response.context['form'].cleaned_data['content'] == ''
@pytest.mark.django_db
def test_CONTENT_and_TITLE_is_blank(client):
form_data = {'title': '', 'tags': 'HTML', 'content': ''}
response = client.post(reverse("public:create"), form_data)
assert (not response.context['form'].is_valid())
表格.py
class PostForm(ModelForm):
def __init__(self, *args, **kwargs):
super(PostForm, self).__init__(*args,**kwargs)
self.fields['title'].required = False
self.fields['content'].required = False
class Meta:
model = Post
fields = ['title', 'tags', 'content']
def clean(self):
form_data = self.cleaned_data
if (form_data['title'] is not "") or (form_data['content'] is not ""):
return form_data
else:
self._errors["title"] = ["Two field is empty"]
def save(self, *args, **kwargs):
instance = super(PostForm, self).save(commit=False)
instance.slug = slugify(instance.title)
instance.save()
return instance
这是模型
class Post(models.Model):
title = models.CharField(max_length=200)
tags = models.ManyToManyField(Tags)
slug = models.SlugField(max_length=200, blank=True)
creation_date = models.DateTimeField(auto_now_add=True)
modify_date = models.DateTimeField(auto_now=True)
content = models.TextField()
感谢您的帮助和建议。