FEM: unit test, make it simpler to add new directories to the python module import test and add some comments

This commit is contained in:
Bernd Hahnebach
2017-09-09 20:31:01 +02:00
committed by wmayer
parent e70a1678f8
commit d272c581e9

View File

@@ -342,29 +342,14 @@ class FemTest(unittest.TestCase):
self.assertEqual(read_npressure, expected_npressure, "Values of read npressure result data are unexpected")
def test_pyimport_all_FEM_modules(self):
# collect all Python modules in Fem
# Mod/Fem/
pydir = FreeCAD.ConfigGet("AppHomePath") + 'Mod/Fem/'
fcc_print(pydir)
# we gone try to import all python modules from FreeCAD Fem
pymodules = []
for pyfile in sorted(os.listdir(pydir)):
if pyfile.endswith(".py") and not pyfile.startswith('Init'):
pymodules.append(os.path.splitext(os.path.basename(pyfile))[0])
# Mod/Fem/PyObjects/
pydir = FreeCAD.ConfigGet("AppHomePath") + 'Mod/Fem/PyObjects/'
fcc_print(pydir)
for pyfile in sorted(os.listdir(pydir)):
if pyfile.endswith(".py"):
pymodules.append('PyObjects.' + os.path.splitext(os.path.basename(pyfile))[0])
# Mod/Fem/PyOGui/
# collect all Python modules in Fem
pymodules += collect_python_modules('') # Fem main dir
pymodules += collect_python_modules('PyObjects')
if FreeCAD.GuiUp:
pydir = FreeCAD.ConfigGet("AppHomePath") + 'Mod/Fem/PyGui/'
fcc_print(pydir)
for pyfile in sorted(os.listdir(pydir)):
if pyfile.endswith(".py"):
pymodules.append('PyGui.' + os.path.splitext(os.path.basename(pyfile))[0])
pymodules += collect_python_modules('PyGui')
# import all collected modules
# fcc_print(pymodules)
@@ -1037,11 +1022,25 @@ def force_unix_line_ends(line_list):
return new_line_list
def collect_python_modules(femsubdir=None):
if not femsubdir:
pydir = FreeCAD.ConfigGet("AppHomePath") + 'Mod/Fem/'
else:
pydir = FreeCAD.ConfigGet("AppHomePath") + 'Mod/Fem/' + femsubdir + '/'
collected_modules = []
fcc_print(pydir)
for pyfile in sorted(os.listdir(pydir)):
if pyfile.endswith(".py") and not pyfile.startswith('Init'):
if not femsubdir:
collected_modules.append(os.path.splitext(os.path.basename(pyfile))[0])
else:
collected_modules.append(femsubdir.replace('/','.') + '.' + os.path.splitext(os.path.basename(pyfile))[0])
return collected_modules
def runTestFem():
'''run FEM unit test
for more information on how to run a specific test class or a test def see
file src/Mod/Test/__init__
https://forum.freecadweb.org/viewtopic.php?f=10&t=22190#p175546
for more information on how to run a specific test class or a test def see comment at file end
'''
import Test
import sys
@@ -1163,4 +1162,14 @@ if FEM unit test is fine --> commit new FEM unit test results
TODO compare the inp file of the helper with the inp file of FEM unit tests
TODO the better way: move the result creation inside the TestFem and add some preference to deactivate this because it needs ccx
for more information on how to run a specific test class or a test def see
file src/Mod/Test/__init__
https://forum.freecadweb.org/viewtopic.php?f=10&t=22190#p175546
import unittest
mytest = unittest.TestLoader().loadTestsFromName("TestFem.FemTest.test_pyimport_all_FEM_modules")
unittest.TextTestRunner().run(mytest)
'''