﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
5836	Test client does not clear exception info after re-raising an exception that was raised by a view	Chris Wagner <cw264701@…>	nobody	"Consider this test case:
{{{
    def test_user_can_only_remove_his_own_notifications(self):

        notification_id = ...  # set notification_id based on some knowledge of what exists in the DB

        self.login_as_user(1)  # this is a custom method defined in a base test class
        try:
            self.client.post(""/notifications/remove/%d"" % notification_id)
            self.fail(""User should not be able to remove notifications "" +
              ""that do not belong to him"")
        except MaliciousOperation:
            pass

        # make sure the notification still exists...
        self.login_as_user(2)
        response = self.client.get(""/"")
        self.assertEqual(notification_id, response.context[0]['notifications'][0].id)
}}}

This causes the exception to be re-raised, by the test client, upon calling {{{self.client.get()}}}, as the exception info was never cleared after/during the call to {{{self.client.post()}}}.

This patch seems to fix it:
{{{
--- test/client.py      (revision 6626)
+++ test/client.py      (working copy)
@@ -181,7 +181,9 @@
 
         # Look for a signalled exception and reraise it
         if self.exc_info:
-            raise self.exc_info[1], None, self.exc_info[2]
+            exc_info = self.exc_info
+            self.exc_info = None
+            raise exc_info[1], None, exc_info[2]
 
         # Save the client and request that stimulated the response
         response.client = self
}}}"		closed	Testing framework	dev		fixed			Accepted	1	0	0	0	0	0
