Skip to content

Commit

Permalink
Allow unit test suite to run with missing modules.
Browse files Browse the repository at this point in the history
  • Loading branch information
ianrrees authored and wwmayer committed Aug 10, 2016
1 parent 03304ab commit d388492
Showing 1 changed file with 49 additions and 20 deletions.
69 changes: 49 additions & 20 deletions src/Mod/Test/TestApp.py
Expand Up @@ -31,33 +31,62 @@
# define the functions to test the FreeCAD base code
#---------------------------------------------------------------------------

def tryLoadingTest(testName):
"Loads and returns testName, or a failing TestCase if unsuccessful."

try:
return unittest.defaultTestLoader.loadTestsFromName(testName)

except ImportError:
class LoadFailed(unittest.TestCase):
def __init__(self, testName):
# setattr() first, because TestCase ctor checks for methodName.
setattr(self, "failed_to_load_" + testName, self._runTest)
super(LoadFailed, self).__init__("failed_to_load_" + testName)
self.testName = testName

def __name__(self):
return "Loading " + self.testName

def _runTest(self):
self.fail("Couldn't load " + self.testName)

return LoadFailed(testName)

def All():
suite = unittest.TestSuite()
# Base system tests
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("UnicodeTests"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("Document"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("UnitTests"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("BaseTests"))
tests = [ "UnicodeTests",
"Document",
"UnitTests",
"BaseTests" ]

# Base system gui test
if (FreeCAD.GuiUp == 1):
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("Workbench"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("Menu"))
tests += [ "Workbench",
"Menu" ]

# add the module tests
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestFem"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("MeshTestsApp"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestSketcherApp"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestPartApp"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestPartDesignApp"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestSpreadsheet"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestTechDrawApp"))
tests += [ "TestFem",
"MeshTestsApp",
"TestSketcherApp",
"TestPartApp",
"TestPartDesignApp",
"TestSpreadsheet",
"TestTechDrawApp" ]

# gui tests of modules
if (FreeCAD.GuiUp == 1):
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestSketcherGui"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestPartGui"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestPartDesignGui"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestDraft"))
suite.addTest(unittest.defaultTestLoader.loadTestsFromName("TestArch"))
tests += [ "TestSketcherGui",
"TestPartGui",
"TestPartDesignGui",
"TestDraft",
"TestArch" ]

suite = unittest.TestSuite()

for test in tests:
suite.addTest(tryLoadingTest(test))

return suite


Expand All @@ -77,7 +106,7 @@ def testAll():


def testUnit():
TestText(unittest.TestLoader().loadTestsFromName('UnitTests'))
TestText(unittest.TestLoader().loadTestsFromName("UnitTests"))


def testDocument():
Expand Down

0 comments on commit d388492

Please sign in to comment.