Exemple #1
0
	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
Exemple #2
0
	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() )