Python django TDD测试处理post请求

前端代码

<html>
    <title>To-Do lists</title>
   <body>
       <h1>Hello World</h1>
       <form method="post">
           <input name="item_text" id="id_new_item" placeholder="Enter a to-do item"/>
           {% csrf_token %}
       </form>
       <table id ="id_list_table">
           <tr>
               <td>{{ new_item_text }}</td>
           </tr>
       </table>
   </body>
</html>

 简单来说就是实现在文本框填数据提交后数据返回到table中

功能测试主要代码

      input=self.browser.find_element_by_id("id_new_item")
      self.assertEqual(
         input.get_attribute('placeholder'),#获取属性里的值
         'Enter a to-do item'
      )
      input.send_keys('Buy')#填入文本框
      input.send_keys(Keys.ENTER)#回车
      time.sleep(1)
      table=self.browser.find_element_by_xpath('//*[@id="id_list_table"]/tbody/tr/td[1]')
      self.assertEqual(table.text,'Buy')
      self.fail("Finish test")#提前结束测试

单元测试tests.py主要代码

    def test_can_save_a_POST_request(self):#测试post请求响应,是否返回文本框的数据
        response=self.client.post('/',data={'item_text':'A new list item'})
        self.assertIn('A new list item',response.content.decode())
        self.assertTemplateUsed(response, 'home.html')  # 检测响应是否同一个模板渲染的

 视图views.py

from django.http import HttpResponse
from django.shortcuts import render
def home_page(request):
    data={}
    if request.POST:
        data["new_item_text"]=request.POST['item_text']
    return render(request,'home.html',data)

# Create your views here.

  

猜你喜欢

转载自www.cnblogs.com/chenminyu/p/11730665.html