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 testXmlReportOnException1( self ): # Covers runPreflightChecks phase # inject erroneous method def runPreFlightChecks_new( self ): raise ConfigurationError( "Test Error" ) replace_bound_method( self.build, self.build.runPreFlightChecks, runPreFlightChecks_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.runPreFlightChecks()" in doc.find( "{0}/traceback".format( e ) ).text ) if etree.__name__ == "lxml.etree": self.assertNotEquals( doc.find( '{0}[@returncode="{1}"]'.format( e, ConfigurationError.getReturnCode() ) ) , None, "Wrong returncode in exception" )
def testCreateEmailOnConfiguratioError( self ): self.build.registerReturnCode( ConfigurationError.getReturnCode() ) self.build.runPreFlightChecks() self.assertTrue( "DR" in self._getRecipients() ) self.assertTrue( "CER" in self._getRecipients() )