test.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #
  2. # Copyright (C) 2016 Intel Corporation
  3. #
  4. # SPDX-License-Identifier: MIT
  5. #
  6. import os
  7. import inspect
  8. import unittest
  9. def getSuiteCases(suite):
  10. """
  11. Returns individual test from a test suite.
  12. """
  13. tests = []
  14. if isinstance(suite, unittest.TestCase):
  15. tests.append(suite)
  16. elif isinstance(suite, unittest.suite.TestSuite):
  17. for item in suite:
  18. tests.extend(getSuiteCases(item))
  19. return tests
  20. def getSuiteModules(suite):
  21. """
  22. Returns modules in a test suite.
  23. """
  24. modules = set()
  25. for test in getSuiteCases(suite):
  26. modules.add(getCaseModule(test))
  27. return modules
  28. def getSuiteCasesInfo(suite, func):
  29. """
  30. Returns test case info from suite. Info is fetched from func.
  31. """
  32. tests = []
  33. for test in getSuiteCases(suite):
  34. tests.append(func(test))
  35. return tests
  36. def getSuiteCasesNames(suite):
  37. """
  38. Returns test case names from suite.
  39. """
  40. return getSuiteCasesInfo(suite, getCaseMethod)
  41. def getSuiteCasesIDs(suite):
  42. """
  43. Returns test case ids from suite.
  44. """
  45. return getSuiteCasesInfo(suite, getCaseID)
  46. def getSuiteCasesFiles(suite):
  47. """
  48. Returns test case files paths from suite.
  49. """
  50. return getSuiteCasesInfo(suite, getCaseFile)
  51. def getCaseModule(test_case):
  52. """
  53. Returns test case module name.
  54. """
  55. return test_case.__module__
  56. def getCaseClass(test_case):
  57. """
  58. Returns test case class name.
  59. """
  60. return test_case.__class__.__name__
  61. def getCaseID(test_case):
  62. """
  63. Returns test case complete id.
  64. """
  65. return test_case.id()
  66. def getCaseFile(test_case):
  67. """
  68. Returns test case file path.
  69. """
  70. return inspect.getsourcefile(test_case.__class__)
  71. def getCaseMethod(test_case):
  72. """
  73. Returns test case method name.
  74. """
  75. return getCaseID(test_case).split('.')[-1]