python - 出生日期测试失败
问题描述
我是 python-django 编码的初学者。目前我正处于https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Testing的挑战部分。我的测试进展顺利,除了def test_form_date_of_death_initially_set_to_expected_date(self)。错误是AssertionError: datetime.date(1900, 1, 1) != datetime.date(2020, 6, 11)据我了解,1900,1,1 是函数完成检查后返回给我的日期。但问题是我不知道这个日期是怎么出来的。我检查了我的文件,但看不到任何将其设置为 1900、1、1 的代码。如果未设置,这是默认日期吗?如果它本质上是默认的,我怎么设置测试作者的死亡日期,它仍然出现在 1900、1、1。如果有人可以帮助我,请不胜感激。谢谢
class AuthorCreateTest(TestCase):
def setUp(self):
# Create a user
test_user1 = User.objects.create_user(username='testuser1', password='1X<ISRUkw+tuK')
test_user2 = User.objects.create_user(username='testuser2', password='2HJ1vRV0Z&3iD')
test_user1.save()
test_user2.save()
# Give test_user2 permission to renew books.
permission = Permission.objects.get(name='Set book as returned')
test_user2.user_permissions.add(permission)
test_user2.save()
# Create a book
test_author = Author.objects.create(first_name='John', last_name='Smith', date_of_death='2006-06-11')
def test_redirect_if_not_logged_in(self):
response = self.client.get(reverse('author-create'))
self.assertRedirects(response, '/accounts/login/?next=/catalog/author/create/')
def test_forbidden_if_logged_in_but_not_correct_permission(self):
login = self.client.login(username='testuser1', password='1X<ISRUkw+tuK')
response = self.client.get(reverse('author-create'))
self.assertEqual(response.status_code, 403)
def test_logged_in_with_permission(self):
login = self.client.login(username='testuser2', password='2HJ1vRV0Z&3iD')
response = self.client.get(reverse('author-create'))
self.assertEqual(response.status_code, 200)
def test_uses_correct_template(self):
login = self.client.login(username='testuser2', password='2HJ1vRV0Z&3iD')
response = self.client.get(reverse('author-create'))
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'catalog/author_form.html')
def test_form_date_of_death_initially_set_to_expected_date(self):
login = self.client.login(username='testuser2', password='2HJ1vRV0Z&3iD')
response = self.client.get(reverse('author-create'))
self.assertEqual(response.status_code, 200)
expected_initial_date = datetime.date(2020, 6, 11)
response_date = response.context['form'].initial['date_of_death']
response_date = datetime.datetime.strptime(response_date, "DD/MM/YYYY").date()
self.assertEqual(response_date, expected_initial_date)
def test_redirects_to_detail_view_on_success(self):
login = self.client.login(username='testuser2', password='2HJ1vRV0Z&3iD')
response = self.client.post(reverse('author-create'),
{'first_name': 'Christian Name', 'last_name': 'Surname'})
# Manually check redirect because we don't know what author was created
self.assertEqual(response.status_code, 302)
self.assertTrue(response.url.startswith('/catalog/author/'))
解决方案
推荐阅读
- python - 这个 tkinter 程序有什么问题?
- azure - 批处理中的 Azure 表批处理操作元素 0 返回了意外的响应代码
- django - 访问部署在 AWS 上的 django 应用程序时出现任务超时错误
- typescript - 在 jsrender 上查找方法时出错,使用带有 typescript 的 jsrender / jsviews
- c# - 在我的应用程序中关闭会话并返回登录时,我的 DisplayAlert 会显示多次
- c++ - 循环迭代器时抛出“调试断言失败”错误
- javascript - 阿拉伯语在 Windows 语音合成中听起来不同
- android - 无法单击 Snackbar 上的操作按钮
- shebang - 社邦表情
- r - 如何获得我们想要的任何字符串?