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