2 # Unit tests for checking syntax of Python source code
4 # Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
6 # SPDX-License-Identifier: BSD-2-Clause-Patent
18 class Tests(TestTools
.BaseToolsTest
):
21 TestTools
.BaseToolsTest
.setUp(self
)
23 def SingleFileTest(self
, filename
):
25 py_compile
.compile(filename
, doraise
=True)
26 except Exception as e
:
27 self
.fail('syntax error: %s, Error is %s' % (filename
, str(e
)))
29 def MakePythonSyntaxCheckTests():
30 def GetAllPythonSourceFiles():
31 pythonSourceFiles
= []
32 for (root
, dirs
, files
) in os
.walk(TestTools
.PythonSourceDir
):
33 for filename
in files
:
34 if filename
.lower().endswith('.py'):
35 pythonSourceFiles
.append(
36 os
.path
.join(root
, filename
)
38 return pythonSourceFiles
40 def MakeTestName(filename
):
41 assert filename
.lower().endswith('.py')
43 name
= name
.replace(TestTools
.PythonSourceDir
, '')
44 name
= name
.replace(os
.path
.sep
, '_')
47 def MakeNewTest(filename
):
48 test
= MakeTestName(filename
)
49 newmethod
= lambda self
: self
.SingleFileTest(filename
)
56 for filename
in GetAllPythonSourceFiles():
59 MakePythonSyntaxCheckTests()
60 del MakePythonSyntaxCheckTests
62 TheTestSuite
= TestTools
.MakeTheTestSuite(locals())
64 if __name__
== '__main__':
65 allTests
= TheTestSuite()
66 unittest
.TextTestRunner().run(allTests
)