Home | History | Annotate | Download | only in lit
      1 from __future__ import absolute_import
      2 import unittest
      3 
      4 import lit.Test
      5 
      6 """
      7 TestCase adaptor for providing a 'unittest' compatible interface to 'lit' tests.
      8 """
      9 
     10 class UnresolvedError(RuntimeError):
     11     pass
     12         
     13 class LitTestCase(unittest.TestCase):
     14     def __init__(self, test, run):
     15         unittest.TestCase.__init__(self)
     16         self._test = test
     17         self._run = run
     18 
     19     def id(self):
     20         return self._test.getFullName()
     21 
     22     def shortDescription(self):
     23         return self._test.getFullName()
     24 
     25     def runTest(self):
     26         # Run the test.
     27         self._run.execute_test(self._test)
     28 
     29         # Adapt the result to unittest.
     30         result = self._test.result
     31         if result.code is lit.Test.UNRESOLVED:
     32             raise UnresolvedError(result.output)
     33         elif result.code.isFailure:
     34             self.fail(result.output)
     35