def testTestRunAddsTestCase(self): obj = TestRunApprovedParser() lines = [ "", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "CatchSelfTest is a <version> host application.", "Run with -? for options", "-------------------------------------------------------------------------------", "./failing/TestClass/failingCase", "-------------------------------------------------------------------------------", "ClassTests.cpp:<line number>", "...............................................................................", "", "ClassTests.cpp:<line number>: FAILED:", " REQUIRE( s == \"world\" )", "with expansion:" " \"hello\" == \"world\"", "", "-------------------------------------------------------------------------------" ] for line in lines: result = obj.parseApprovedLine(line) #print obj self.assertTrue(result == None) self.assertTrue(len(obj.current.testcases) == 1) self.assertTrue(obj.current.testcases[0].filename == "ClassTests.cpp") self.assertTrue(obj.current.testcases[0].lineNumber == "line number") self.assertTrue(len(obj.current.testcases[0].conditions) == 1) self.assertTrue(obj.current.testcases[0].conditions[0].filename == "ClassTests.cpp") self.assertTrue( obj.current.testcases[0].conditions[0].lineNumber == "line number") self.assertTrue( obj.current.testcases[0].conditions[0].reason == "FAILED")
def testTestRunWithRandomOutput(self): obj = TestRunApprovedParser() lines = [ "", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "CatchSelfTest is a <version> host application.", "Run with -? for options", "", "-------------------------------------------------------------------------------", "./failing/TestClass/failingCase", "-------------------------------------------------------------------------------", "ClassTests.cpp:<line number>", "...............................................................................", "", "MiscTests.cpp:<line number>: FAILED:", "explicitly with message:", " to infinity and beyond", "", "Message from section one", "Message from section two", "Some information", "An error", "Message from section one", "Message from section two", "Some information", "An error", "hello", "hello", "===============================================================================", "122 test cases - 35 failed (753 assertions - 90 failed)", "" ] testRun = None for line in lines: result = obj.parseApprovedLine(line) if isinstance(result, TestRunData): testRun = result self.assertTrue(isinstance(testRun, TestRunData)) #print "O:",result.outputLine self.assertTrue(testRun.outputLine == 14) newLines = testRun.generateApprovedLines() #for line in newLines: # print line self.assertTrue(len(lines) == len(newLines)) self.assertTrue(lines == newLines)
def testTestRunVersionIsSet(self): obj = TestRunApprovedParser() lines = [ "", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "CatchSelfTest is a <version> host application.", "Run with -? for options" ] for line in lines: result = obj.parseApprovedLine(line) #print obj self.assertTrue(result == None) self.assertTrue(obj.current.appname == "CatchSelfTest") self.assertTrue(obj.current.version == "<version>")
def testTestRunParsesTwoTestCases(self): obj = TestRunApprovedParser() lines = [ "", "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~", "CatchSelfTest is a <version> host application.", "Run with -? for options", "", "-------------------------------------------------------------------------------", "./failing/TestClass/failingCase", "-------------------------------------------------------------------------------", "ClassTests.cpp:<line number>", "...............................................................................", "", "ClassTests.cpp:<line number>: FAILED:", " REQUIRE( s == \"world\" )", "with expansion:", " \"hello\" == \"world\"", "", "-------------------------------------------------------------------------------", "./failing/Fixture/failingCase", "-------------------------------------------------------------------------------", "ClassTests.cpp:<line number>", "...............................................................................", "", "ClassTests.cpp:<line number>: FAILED:", " REQUIRE( m_a == 2 )", "with expansion:", " 1 == 2", "", "===============================================================================", "122 test cases - 35 failed (753 assertions - 90 failed)", "" ] testRun = None for line in lines: result = obj.parseApprovedLine(line) if isinstance(result, TestRunData): testRun = result self.assertTrue(isinstance(testRun, TestRunData)) newLines = testRun.generateApprovedLines() #for line in newLines: # print "L:",line #print len(lines),",",len(newLines) self.assertTrue(len(lines) == len(newLines)) self.assertTrue(lines == newLines)
def testStartOfTestRunIsFound(self): obj = TestRunApprovedParser() line = "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" result = obj.parseApprovedLine(line) self.assertTrue(result == None)