web/test/unittest_views_errorform.py
changeset 9809 29d52a785729
parent 8695 358d8bed9626
child 10785 e63fb79b32e0
--- a/web/test/unittest_views_errorform.py	Mon Jun 02 16:52:34 2014 +0200
+++ b/web/test/unittest_views_errorform.py	Mon Jun 02 17:01:38 2014 +0200
@@ -1,4 +1,4 @@
-# copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
+# copyright 2003-2014 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr
 #
 # This file is part of CubicWeb.
@@ -15,25 +15,20 @@
 #
 # You should have received a copy of the GNU Lesser General Public License along
 # with CubicWeb.  If not, see <http://www.gnu.org/licenses/>.
+import re
+import sys
 
 from logilab.common.testlib import unittest_main
-from logilab.mtconverter import html_unescape
 
-from cubicweb import Forbidden, ValidationError
+from cubicweb import Forbidden
 from cubicweb.devtools.testlib import CubicWebTC
-from cubicweb.utils import json
-from cubicweb.view import StartupView, TRANSITIONAL_DOCTYPE_NOEXT
+from cubicweb.view import StartupView
 from cubicweb.web import Redirect
-from cubicweb.web.htmlwidgets import TableWidget
-from cubicweb.web.views import vid_from_rset
 
-import re
-import hmac
 
 class ErrorViewTC(CubicWebTC):
     def setUp(self):
         super(ErrorViewTC, self).setUp()
-        self.req = self.request()
         self.vreg.config['submit-mail'] = "test@logilab.fr"
         self.vreg.config['print-traceback'] = "yes"
 
@@ -48,15 +43,16 @@
                 raise ValueError('This is wrong')
 
         with self.temporary_appobjects(MyWrongView):
-            try:
-                self.view('my-view')
-            except Exception as e:
-                import sys
-                self.req.data['excinfo'] = sys.exc_info()
-                self.req.data['ex'] = e
-                html = self.view('error', req=self.req)
-                self.failUnless(re.search(r'^<input name="__signature" type="hidden" value="[0-9a-f]{32}" />$',
-                                          html.source, re.M))
+            with self.admin_access.web_request() as req:
+                try:
+                    self.view('my-view', req=req)
+                except Exception as e:
+                    req.data['excinfo'] = sys.exc_info()
+                    req.data['ex'] = e
+                    html = self.view('error', req=req)
+                    self.failUnless(re.search(r'^<input name="__signature" type="hidden" '
+                                              'value="[0-9a-f]{32}" />$',
+                                              html.source, re.M))
 
 
     def test_error_submit_nosig(self):
@@ -64,36 +60,33 @@
         tests that the reportbug controller refuses submission if
         there is not content signature
         """
-
-        self.req.form = {'description': u'toto',
-                         }
-        with self.assertRaises(Forbidden) as cm:
-            self.ctrl_publish(self.req, 'reportbug')
+        with self.admin_access.web_request() as req:
+            req.form = {'description': u'toto'}
+            with self.assertRaises(Forbidden) as cm:
+                self.ctrl_publish(req, 'reportbug')
 
     def test_error_submit_wrongsig(self):
         """
         tests that the reportbug controller refuses submission if the
         content signature is invalid
         """
-
-        self.req.form = {'__signature': 'X',
-                         'description': u'toto',
-                         }
-        with self.assertRaises(Forbidden) as cm:
-            self.ctrl_publish(self.req, 'reportbug')
+        with self.admin_access.web_request() as req:
+            req.form = {'__signature': 'X',
+                        'description': u'toto'}
+            with self.assertRaises(Forbidden) as cm:
+                self.ctrl_publish(req, 'reportbug')
 
     def test_error_submit_ok(self):
         """
         tests that the reportbug controller accept the email submission if the
         content signature is valid
         """
-
-        sign = self.vreg.config.sign_text('toto')
-        self.req.form = {'__signature': sign,
-                         'description': u'toto',
-                         }
-        with self.assertRaises(Redirect) as cm:
-            self.ctrl_publish(self.req, 'reportbug')
+        with self.admin_access.web_request() as req:
+            sign = self.vreg.config.sign_text('toto')
+            req.form = {'__signature': sign,
+                        'description': u'toto'}
+            with self.assertRaises(Redirect) as cm:
+                self.ctrl_publish(req, 'reportbug')
 
 if __name__ == '__main__':
     unittest_main()