[migration] fix bug in `CWAttributeAddOp.revertprecommit_event`
The `rdefdef` attribute is set during the operation execution. In some the
operation crash before this assignment. In such case `revertprecommit` raise an
attribute error crashing the whole process and shadowing the original error.
This changeset detect and Avoid this situation.
# copyright 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.# contact http://www.logilab.fr/ -- mailto:contact@logilab.fr## This file is part of CubicWeb.## CubicWeb is free software: you can redistribute it and/or modify it under the# terms of the GNU Lesser General Public License as published by the Free# Software Foundation, either version 2.1 of the License, or (at your option)# any later version.## CubicWeb is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more# details.## You should have received a copy of the GNU Lesser General Public License along# with CubicWeb. If not, see <http://www.gnu.org/licenses/>.fromcubicweb.devtools.testlibimportCubicWebTCfromcubicweb.devtools.htmlparserimportDTDValidatorclassLogFormTemplateTC(CubicWebTC):def_login_labels(self):valid=self.content_type_validators.get('text/html',DTDValidator)()req=self.request()req.cnx.anonymous_connection=Truepage=valid.parse_string(self.vreg['views'].main_template(self.request(),'login'))req.cnx.anonymous_connection=Falsereturnpage.find_tag('label')deftest_label(self):self.set_option('allow-email-login','yes')self.assertEqual(self._login_labels(),['login or email','password'])self.set_option('allow-email-login','no')self.assertEqual(self._login_labels(),['login','password'])classMainNoTopTemplateTC(CubicWebTC):deftest_valid_xhtml(self):self.view('index',template='main-no-top')if__name__=='__main__':fromlogilab.common.testlibimportunittest_mainunittest_main()