1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- ## @file
- # Unit tests for checking syntax of Python source code
- #
- # Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
- #
- # SPDX-License-Identifier: BSD-2-Clause-Patent
- #
- ##
- # Import Modules
- #
- import os
- import unittest
- import py_compile
- import TestTools
- class Tests(TestTools.BaseToolsTest):
- def setUp(self):
- TestTools.BaseToolsTest.setUp(self)
- def SingleFileTest(self, filename):
- try:
- py_compile.compile(filename, doraise=True)
- except Exception as e:
- self.fail('syntax error: %s, Error is %s' % (filename, str(e)))
- def MakePythonSyntaxCheckTests():
- def GetAllPythonSourceFiles():
- pythonSourceFiles = []
- for (root, dirs, files) in os.walk(TestTools.PythonSourceDir):
- for filename in files:
- if filename.lower().endswith('.py'):
- pythonSourceFiles.append(
- os.path.join(root, filename)
- )
- return pythonSourceFiles
- def MakeTestName(filename):
- assert filename.lower().endswith('.py')
- name = filename[:-3]
- name = name.replace(TestTools.PythonSourceDir, '')
- name = name.replace(os.path.sep, '_')
- return 'test' + name
- def MakeNewTest(filename):
- test = MakeTestName(filename)
- newmethod = lambda self: self.SingleFileTest(filename)
- setattr(
- Tests,
- test,
- newmethod
- )
- for filename in GetAllPythonSourceFiles():
- MakeNewTest(filename)
- MakePythonSyntaxCheckTests()
- del MakePythonSyntaxCheckTests
- TheTestSuite = TestTools.MakeTheTestSuite(locals())
- if __name__ == '__main__':
- allTests = TheTestSuite()
- unittest.TextTestRunner().run(allTests)
|