def testBreakStringIntoLines_tooSmallToBreak(self): maxColumnWidth = 80 tabSize = 4 smallString = "X"*80 stringLines = breakStringIntoLines(smallString, maxColumnWidth) self.assertEqual(len(stringLines),1) self.assertEqual(stringLines[0], smallString)
def testBreakStringIntoLines_tooSmallToBreak(self): maxColumnWidth = 80 tabSize = 4 smallString = "X" * 80 stringLines = breakStringIntoLines(smallString, maxColumnWidth) self.assertEqual(len(stringLines), 1) self.assertEqual(stringLines[0], smallString)
def testBreakStringIntoLines_unbreakable(self): maxColumnWidth = 80 tabSize = 4 unbreakableString = "X"*100 stringLines = breakStringIntoLines(unbreakableString, maxColumnWidth) self.assertEqual(len(stringLines),1) self.assertEqual(stringLines[0], unbreakableString)
def testBreakStringIntoLines_unbreakable(self): maxColumnWidth = 80 tabSize = 4 unbreakableString = "X" * 100 stringLines = breakStringIntoLines(unbreakableString, maxColumnWidth) self.assertEqual(len(stringLines), 1) self.assertEqual(stringLines[0], unbreakableString)
def testBreakStringIntoLines_hasNewLine(self): maxColumnWidth = 80 tabSize = 4 smallString = "X"*80 twoLineString = smallString + "\n" + smallString stringLines = breakStringIntoLines(twoLineString, maxColumnWidth) self.assertEqual(len(stringLines),2) self.assertEqual(stringLines[0], smallString) self.assertEqual(stringLines[1], smallString)
def testBreakStringIntoLines_hasNewLine(self): maxColumnWidth = 80 tabSize = 4 smallString = "X" * 80 twoLineString = smallString + "\n" + smallString stringLines = breakStringIntoLines(twoLineString, maxColumnWidth) self.assertEqual(len(stringLines), 2) self.assertEqual(stringLines[0], smallString) self.assertEqual(stringLines[1], smallString)
def testBreakStringIntoLines_breakInTwo(self): maxColumnWidth = 80 separatorDist = 40 tabSize = 4 separator = ',' lineSeparator = " \\" splitmarker = '' unbreakableString = "X"*100 breakableString = unbreakableString + separator + unbreakableString stringLines = breakStringIntoLines(breakableString, maxColumnWidth) self.assertEqual(len(stringLines), 2) self.assertEqual(stringLines[0], unbreakableString+separator+splitmarker) self.assertEqual(stringLines[1], " "*tabSize + unbreakableString)
def testBreakStringIntoLines_breakInTwo(self): maxColumnWidth = 80 separatorDist = 40 tabSize = 4 separator = ',' lineSeparator = " \\" splitmarker = '' unbreakableString = "X" * 100 breakableString = unbreakableString + separator + unbreakableString stringLines = breakStringIntoLines(breakableString, maxColumnWidth) self.assertEqual(len(stringLines), 2) self.assertEqual(stringLines[0], unbreakableString + separator + splitmarker) self.assertEqual(stringLines[1], " " * tabSize + unbreakableString)
def testGenerateUnitTestCode(self): import Util.Tests.TestGeneratorExampleModule as testModule testContainers = [('TestGeneratorExampleModule_Functions', ["Function1", "Function2"]), \ ('EmptyClass', []), \ ('ExampleClass', ['SomeFunction'])] generator = self.templateGenerator tabSpaces = ' ' * generator.indentSpaces maxColWidth = generator.maxColWidth testClassName = generator.unitTestClass.__module__ + '.' + generator.unitTestClass.__name__ targetCodeLines = [] targetCodeLines.append("import %s" % (generator.unitTestClass.__module__, )) targetCodeLines.append( "from %s import (EmptyClass, ExampleClass, function1, function2,)" % (testModule.__name__, )) targetCodeLines.append('') for containerName, containerAttributes in testContainers: targetCodeLines.append("class %sTest(%s):" % (containerName, testClassName)) targetCodeLines.append('') targetCodeLines.append(tabSpaces + "def setUp(self):") targetCodeLines.append(tabSpaces * 2 + "pass") targetCodeLines.append("") for attr in containerAttributes: targetCodeLines.append(tabSpaces + "def test%s(self):" % (attr)) targetCodeLines.append(tabSpaces * 2 + "pass") targetCodeLines.append("") targetCodeLines.append("") targetCodeLines.append('if __name__ == "__main__":') targetCodeLines.append(tabSpaces + 'unittest.main()') #targetCodeLines.append('else:') #targetCodeLines.append(tabSpaces + 'import sys') #targetCodeLines.append(tabSpaces + 'TestSuite = unittest.TestLoader.loadTestsFromModule(sys.modules[__name__])') targetCodeLines = [codeLine for targetLine in targetCodeLines \ for codeLine in breakStringIntoLines(targetLine, maxColWidth)] targetSourceCode = '\n'.join(targetCodeLines) x = targetSourceCode y = generator.generateUnitTestCode(testModule) for i, v in enumerate(x): if y[i] != v: print i, y[i:] self.assertEqual(targetSourceCode, generator.generateUnitTestCode(testModule))
def testGenerateUnitTestCode(self): import Util.Tests.TestGeneratorExampleModule as testModule testContainers = [('TestGeneratorExampleModule_Functions', ["Function1", "Function2"]), \ ('EmptyClass', []), \ ('ExampleClass', ['SomeFunction'])] generator = self.templateGenerator tabSpaces = ' '*generator.indentSpaces maxColWidth = generator.maxColWidth testClassName = generator.unitTestClass.__module__ + '.' + generator.unitTestClass.__name__ targetCodeLines = [] targetCodeLines.append("import %s"%(generator.unitTestClass.__module__,)) targetCodeLines.append("from %s import (EmptyClass, ExampleClass, function1, function2,)"%(testModule.__name__,)) targetCodeLines.append('') for containerName, containerAttributes in testContainers: targetCodeLines.append("class %sTest(%s):"%(containerName,testClassName)) targetCodeLines.append('') targetCodeLines.append(tabSpaces+"def setUp(self):") targetCodeLines.append(tabSpaces*2+"pass") targetCodeLines.append("") for attr in containerAttributes: targetCodeLines.append(tabSpaces+"def test%s(self):"%(attr)) targetCodeLines.append(tabSpaces*2+"pass") targetCodeLines.append("") targetCodeLines.append("") targetCodeLines.append('if __name__ == "__main__":') targetCodeLines.append(tabSpaces + 'unittest.main()') #targetCodeLines.append('else:') #targetCodeLines.append(tabSpaces + 'import sys') #targetCodeLines.append(tabSpaces + 'TestSuite = unittest.TestLoader.loadTestsFromModule(sys.modules[__name__])') targetCodeLines = [codeLine for targetLine in targetCodeLines \ for codeLine in breakStringIntoLines(targetLine, maxColWidth)] targetSourceCode = '\n'.join(targetCodeLines) x= targetSourceCode y= generator.generateUnitTestCode(testModule) for i, v in enumerate(x): if y[i] != v: print i, y[i:] self.assertEqual(targetSourceCode, generator.generateUnitTestCode(testModule))