def getRecipientList( self ): # use overwrite if set if len( self.getRecipients() ) > 0: return self.getRecipients() info = self._getRevisionInfo() returnCode = mApp().getReturnCode() # get settings reporterDefaultRecipients = mApp().getSettings().get( Settings.EmailReporterDefaultRecipients, False ) reporterConfigurationErrorRecipients = mApp().getSettings().get( Settings.EmailReporterConfigurationErrorRecipients, False ) reporterMomErrorRecipients = mApp().getSettings().get( Settings.EmailReporterMomErrorRecipients, False ) recipients = set() if reporterDefaultRecipients: recipients.update( reporterDefaultRecipients ) if returnCode == ConfigurationError.getReturnCode() or ( info.revision is None ): if reporterConfigurationErrorRecipients: recipients.update( reporterConfigurationErrorRecipients ) elif returnCode == BuildError.getReturnCode(): if mApp().getSettings().get( Settings.EmailReporterNotifyCommitterOnFailure ): if info.committerEmail: recipients.add( info.committerEmail ) else: mApp().debug( self, 'Could not add committer {0} as recipient, email address is missing: {0}' .format( info.committerName ) ) elif returnCode == MomError.getReturnCode(): if reporterMomErrorRecipients: recipients.update( reporterMomErrorRecipients ) return recipients
def testXmlReportOnException( self ): # Covers runSetups phase def runSetups_new( self ): raise MomError( "Test Error" ) # inject erroneous method replace_bound_method( self.build, self.build.runSetups, runSetups_new ) self._executeBuild() doc = etree.XML( self._getXmlReport().getReport() ) e = self.EXCEPTION_LOCATION self._testBasicDocumentAttributes( doc ) self.assertNotEquals( doc.find( e ), None ) self.assertNotEquals( doc.find( "{0}/description".format( e ) ), None ) self.assertNotEquals( doc.find( "{0}/traceback".format( e ) ), None ) self.assertTrue( "self.runSetups()" in doc.find( "{0}/traceback".format( e ) ).text ) if etree.__name__ == "lxml.etree": self.assertNotEquals( doc.find( '{0}[@returncode="{1}"]'.format( e, MomError.getReturnCode() ) ) , None, "Wrong returncode in exception" )
def testCreateEmailOnMomError( self ): self.build.registerReturnCode( MomError.getReturnCode() ) self.build.runPreFlightChecks() self.assertTrue( "DR" in self._getRecipients() ) self.assertTrue( "MER" in self._getRecipients() )