def test_revoke_ship_it_with_revoked_signal_exception(self): """Testing Review.revoke_ship_it with exception in review_ship_it_revoked handler """ def on_revoked(**kwargs): raise Exception('oh no') review_request = self.create_review_request(create_repository=True, publish=True) review = self.create_review(review_request, body_top=Review.SHIP_IT_TEXT, ship_it=True, publish=True) try: review_ship_it_revoked.connect(on_revoked) review.revoke_ship_it(review.user) finally: review_ship_it_revoked.disconnect(on_revoked) self.assertEqual(review.body_top, Review.REVOKED_SHIP_IT_TEXT) self.assertFalse(review.ship_it) self.assertTrue(review.extra_data.get('revoked_ship_it'))