Python中文
首页
教程
问答
标签
搜索
登录
注册
Pylons应用程序中的单元测试授权失败;Cookie未正确设置或记录
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我在运行Pylons应用程序的授权单元测试时遇到问题。似乎测试用例中设置的某些cookie可能无法正确写入或解析。用浏览器点击应用程序时,Cookie可以正常工作。在</p> <p>下面是我在粘贴生成的TestController中的测试用例:</p> <pre><code>def test_good_login(self): r = self.app.post('/dologin', params={'login': self.user['username'], 'password': self.password}) r = r.follow() # Should only be one redirect to root assert 'http://localhost/' == r.request.url assert 'Dashboard' in r </code></pre> <p>这是为了测试现有帐户的登录是否会将用户转发到仪表板页面。相反,所发生的是用户被重定向回登录。第一个POST起作用,在会话中设置用户并返回cookies。尽管这些cookies是在下面的请求中发送的,但它们似乎没有被正确地解析。在</p> <p>我首先在上述方法的开头设置断点,然后查看登录响应返回的内容:</p> ^{pr2}$ <p>似乎创建了一个会话并发送了一个cookie。浏览器将重定向到根目录,而不是登录,这也表示登录成功。如果我跳过follow(),我得到:</p> <pre><code>> /Users/istevens/dev/foo/foo/tests/functional/test_account.py(35)test_good_login() -> assert 'http://localhost/' == r.request.url (Pdb) p r.request.headers {'Host': 'localhost:80', 'Cookie': 'auth_tkt=""\\"4c898eb72f7ad38551eb11e1936303374bd871934bd871833d19ad8a79000000!\\"""; '} (Pdb) p r.request.environ['REMOTE_USER'] *** KeyError: KeyError('REMOTE_USER',) (Pdb) p r.request.environ['HTTP_COOKIE'] 'auth_tkt=""\\"4c898eb72f7ad38551eb11e1936303374bd871934bd871833d19ad8a79000000!\\"""; ' (Pdb) p r.request.cookies {'auth_tkt': ''} (Pdb) p r <302 Found text/html location: http://localhost/login?__logins=1&came_from=http%3A%2F%2Flocalhost%2F body='302 Found...y. '/149> </code></pre> <p>这意味着cookie是在请求中传入的,尽管转义是可疑的。环境似乎没有根据先前的请求创建的会话。cookie已从标头复制到environ,但请求中的cookie似乎设置不正确。最后,用户被重定向到登录页面,表明用户没有登录。在</p> <p>应用程序中的授权通过休息。谁以及休泽.谁.插件.ldap与休息。谁友好执行挑战。我使用的是paste创建的股票<code>tests.TestController</code>:</p> <pre><code>class TestController(TestCase): def __init__(self, *args, **kwargs): if pylons.test.pylonsapp: wsgiapp = pylons.test.pylonsapp else: wsgiapp = loadapp('config:%s' % config['__file__']) self.app = TestApp(wsgiapp) url._push_object(URLGenerator(config['routes.map'], environ)) TestCase.__init__(self, *args, **kwargs) </code></pre> <p>顺便说一下,这是一个<code>webtest.TestApp</code>。在</p> <p>cookie的编码在中完成webtest.TestApp使用Cookie:</p> <pre><code>>>> from Cookie import _quote >>> _quote('"84533cf9f661f97239208fb844a09a6d4bd8552d4bd8550c3d19ad8339000000!"') '"\\"84533cf9f661f97239208fb844a09a6d4bd8552d4bd8550c3d19ad8339000000!\\""' </code></pre> <p>我相信这是对的。在</p> <p>我的猜测是,响应端的某些东西错误地将cookie数据解析为服务器端请求中的<code>cookies</code>。但是什么?有什么想法吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>在将WebTest从1.2.1降级到1.2后,此问题消失了。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
为什么我的神经网络模型的准确性不能在这个训练集上得到提高?
8 回答
为什么我的神经网络模型的权重变化不大?
5 回答
为什么我的神经网络的成本不断增加?
3 回答
为什么我的神经网络的输入pickle文件是19GB?
2 回答
为什么我的神经网络给属性错误?“非类型”对象没有属性“形状”
3 回答
为什么我的神经网络训练这么慢?
8 回答
为什么我的神经网络输出错误?
2 回答
为什么我的神经网络预测适用于MNIST手绘图像时是正确的,而适用于我自己的手绘图像时是不正确的?
4 回答
为什么我的神经网络验证精度比我的训练精度高,而且它们都是常数?
8 回答
为什么我的私人用户间聊天会显示在其他用户的聊天档案中?
2 回答
为什么我的积分的绝对误差估计值大于积分(使用scipy.integrate.nqad)?
10 回答
为什么我的积层回归器得分比它的组件差?
2 回答
为什么我的移动方法不起作用?
6 回答
为什么我的稀疏张量不能转换成张量
5 回答
为什么我的稀疏张量不能转换成张量?
8 回答
为什么我的程序“停止”了?
3 回答
为什么我的程序一直试图占用所有可用的CPU
9 回答
为什么我的程序不使用指定的代理
7 回答
为什么我的程序不工作(python帮助中的反向函数)?
8 回答
为什么我的程序不工作时,我使用多处理模块
6 回答