trac#665: Upgrade to WebTest 2.0.18 and fix broken test `test_csrf_cookie_set`.
authorBen Sturmfels <ben@sturm.com.au>
Mon, 24 Aug 2015 10:47:33 +0000 (20:47 +1000)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 5 Nov 2015 21:13:44 +0000 (15:13 -0600)
Test was failing due to API change in WebTest around accessing cookies set in the test client. These are now in `test_app.cookies`.

While there are currently 48 other tests failing, I've verified that before and after this change that the same number fail. I've also checked that no other tests use the old API for accessing test client cookies.

I've pinned to version 2.0.18. My understanding is that it's generally a good idea to pin to a specific version where possible to avoid the "why has this suddenly broken" type bugs. This also seems appropriate since WebTest appears to be very stable.

mediagoblin/tests/test_csrf_middleware.py
setup.py

index a272caf69997d2d21035328d6dd23419488b3429..4452112beb2cb45ac0fae35c3c791be1ec09fa80 100644 (file)
@@ -25,7 +25,7 @@ def test_csrf_cookie_set(test_app):
 
     # assert that the mediagoblin nonce cookie has been set
     assert 'Set-Cookie' in response.headers
-    assert cookie_name in response.cookies_set
+    assert cookie_name in test_app.cookies
 
     # assert that we're also sending a vary header
     assert response.headers.get('Vary', False) == 'Cookie'
@@ -34,7 +34,7 @@ def test_csrf_cookie_set(test_app):
 # We need a fresh app for this test on webtest < 1.3.6.
 # We do not understand why, but it fixes the tests.
 # If we require webtest >= 1.3.6, we can switch to a non fresh app here.
-# 
+#
 # ... this comment might be irrelevant post-pytest-fixtures, but I'm not
 # removing it yet in case we move to module-level tests :)
 #   -- cwebber
index 68303f25cdf42ab39f823add5a7e0dd70cfe42d8..d96ed1783c2765e25791798b2518a845dc3e6581 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -74,7 +74,7 @@ install_requires = [
     'kombu',
     'jinja2',
     'Babel>=1.3',
-    'webtest<2',
+    'WebTest==2.0.18',
     'ConfigObj',
     'Markdown',
     'sqlalchemy<0.9.0, >0.8.0',