コード例 #1
0
ファイル: XmlReportTests.py プロジェクト: KDAB/Make-O-Matic
	def testConvertXmlReportToHtmlWithoutLxml( self ):
		# write a new method implementation
		def hasXsltSupport_new( self ):
			return False

		converter = XmlReportConverter( self._getXmlReport() )
		replace_bound_method( converter, converter.hasXsltSupport, hasXsltSupport_new ) # replace method

		xmlString = converter.convertToHtml()
		self.assertTrue( xmlString == None, "If no XSLT support is available, converting to HTML should not work" )
コード例 #2
0
	def testExceptionIntrospection( self ):
		build = self.build

		plugin = CrashMePlugin()
		build.addPlugin( plugin )

		def setup_new( self ):
			raise MomError( 'Test ' )

		replace_bound_method( plugin, plugin.setup, setup_new )
		build.buildAndReturn()
		self.assertTrue( build.getException()[0].getPhase() == Instructions.Phase.Setup )
コード例 #3
0
ファイル: XmlReportTests.py プロジェクト: KDAB/Make-O-Matic
	def testXmlReportOnStepFailure( self ):
		self._executeBuild()

		def failed_new( self ):
			return Step.Result.Failure

		step = self.project.getStep( 'cleanup' )
		replace_bound_method( step, step.getResult, failed_new )

		converter = XmlReportConverter( self._getXmlReport() )
		logText = converter.convertToFailedStepsLog()

		self.assertTrue( "cleanup" in logText )
コード例 #4
0
ファイル: XmlReportTests.py プロジェクト: KDAB/Make-O-Matic
	def testXmlReportOnExceptionInXmlReportGeneration( self ):
		# inject invalid XML template function into plugin
		def command_new( self ):
			raise MomError( "Test Error" )
		logger = ConsoleLogger()
		self.build.addPlugin( logger )
		replace_bound_method( logger, logger.getObjectStatus, command_new )

		self._executeBuild()

		converter = XmlReportConverter( self._getXmlReport() )
		text = converter.convertToText()

		self.assertTrue( "Exception" in text )
コード例 #5
0
ファイル: XmlReportTests.py プロジェクト: KDAB/Make-O-Matic
	def testXmlReportOnException2( self ):
		# Covers run phase

		# inject erroneous method
		def runExecute_new( self ):
			raise BuildError( "Test Error" )
		replace_bound_method( self.build, self.build.runExecute, runExecute_new )

		self._executeBuild()
		doc = etree.XML( self._getXmlReport().getReport() )

		# only minor checks, rest already covered in previous tests
		e = self.EXCEPTION_LOCATION
		self._testBasicDocumentAttributes( doc )
		self.assertNotEquals( doc.find( e ), None )

		self.assertTrue( "self.runExecute()" in doc.find( "{0}/traceback".format( e ) ).text )
コード例 #6
0
ファイル: XmlReportTests.py プロジェクト: KDAB/Make-O-Matic
	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" )