如何对FormView进行单元测试?永远不会到达结果页面

时间:2018-07-25 00:40:04

标签: django django-testing

Django的FormView返回302,这使得测试变得困难:

def getch():
    fd = sys.stdin.fileno()
    old_Settings = termios.tcgetattr(fd)
    try: 
        tty.setraw(sys.stdin.fileno())
        sys.stdin.flush()
    except KeyboardInterrupt:
        print ("[Error] Abnormal program termination")
    finally:
        termios.tcsetattr(fd,termios.TCSADRAIN,old_settings)
    return ch

第一个响应(重定向)的class A(TestCase): def test_add_item(self): a_valid_value = "aaa" a_invalid_value = "ccc" successful_text = "gratz" failure_text = "fail" resp = self.client.post('/add/', {'item': a_valid_value}) print(resp.content) # prints b'' self.assertContains(resp, successful_text, status_code=??) 为302,而status_code为空。问题是我从来没有在测试文件中得到最终的答复来测试内容。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

文档全面介绍了这一点;您可以在follow=True调用中使用post来跟随重定向,并且有一种assertRedirects方法可以测试重定向本身。