给列表自己的URL - yann学长的运维开发指南45

in #devops7 years ago

目前进度

第6章的内容比较长,所以拆分成了若干个小节说明,以下为当前进度:

确保功能测试之间相互隔离
解决页面刷新延迟
使用TDD 实现新设计
逐步迭代,实现新设计
使用Django测试客户端一起测试视图、模板和URL
用于添加待办事项的URL和视图
调整模型
每个列表都应该有自己的URL

http://www.iamyann.com/images/0719/20180719205349.png
(html comment removed: more)

内容介绍

  • 给列表自己的URL
  • 更新测试
  • 测试一下
  • 捕获URL
  • 更新视图文件
  • 再次更新视图
  • 测试修改成果
  • 按照设计调整new_list视图
  • 进行功能测试

给列表自己的URL

给每个列表自己的URL就是需要有唯一的标识符,比如数据库的id字段

更新测试

vi lists/tests.py

http://www.iamyann.com/images/0719/20180719200530.png

把test_displays_all_items修改成 test_displays_only_items_for_that_list

测试一下

测试一下,应该会有404出现

python manage.py test lists
#
AssertionError: 404 != 200 : Couldn t retrieve content: Response code was 404
(expected 200)

捕获URL

把URL传入视图

vi superlists/urls.py

http://www.iamyann.com/images/0719/20180719201319.png

调整URL中的正则表达式,加入捕获组,匹配 "/"后的任意字符,传入视图

继续测试

python manage.py test lists
#
TypeError: view_list() takes 1 positional argument but 2 were given

更新视图文件

vi lists/views.py
def view_list(request, list_id):

再次更新视图

再次测试, 报错有了变化

python manage.py test lists
#
AssertionError: 1 != 0 : Response should not contain 'other list item 1'

报警符合预期,把代办事项传入模板

vi lists/views.py

http://www.iamyann.com/images/0719/20180719202303.png

测试修改成果

再测试一下

python manage.py test lists
#
ERROR: test_redirects_after_POST (lists.tests.NewListTest)
ValueError: invalid literal for int() with base 10:
'the-only-list-in-the-world'

按照设计调整new_list视图

修改测试

vi lists/tests.py

http://www.iamyann.com/images/0719/20180719203824.png
检查是否定义到新URL
测试之后发现仍然报错,再修改一下

vi lists/tests.py

重定向到有效地址

http://www.iamyann.com/images/0719/20180719204040.png

再次测试通过

进行功能测试

python manage.py test functional_tests
#
AssertionError: '2: Use peacock feathers to make a fly' not found in ['1: Use
peacock feathers to make a fly']

功能测试还是有故障,下节再修复

预告

今天的内容也差不多了,下次会再调整一下视图文件,敬请期待

时间过的飞快,下节再见

http://hero.iamyann.com/blog_webchat.jpg