Use Black stable to format python code
[babeltrace.git] / tests / utils / python / tap / adapter.py
1 # SPDX-License-Identifier: BSD-2-Clause
2 #
3 # Copyright (c) 2016, Matt Layman
4
5
6 class Adapter(object):
7 """The adapter processes a TAP test line and updates a unittest result.
8
9 It is an alternative to TestCase to collect TAP results.
10 """
11
12 failureException = AssertionError
13
14 def __init__(self, filename, line):
15 self._filename = filename
16 self._line = line
17
18 def shortDescription(self):
19 """Get the short description for verbeose results."""
20 return self._line.description
21
22 def __call__(self, result):
23 """Update test result with the lines in the TAP file.
24
25 Provide the interface that TestCase provides to a suite or runner.
26 """
27 result.startTest(self)
28
29 if self._line.skip:
30 result.addSkip(None, self._line.directive.reason)
31 return
32
33 if self._line.todo:
34 if self._line.ok:
35 result.addUnexpectedSuccess(self)
36 else:
37 result.addExpectedFailure(self, (Exception, Exception(), None))
38 return
39
40 if self._line.ok:
41 result.addSuccess(self)
42 else:
43 self.addFailure(result)
44
45 def addFailure(self, result):
46 """Add a failure to the result."""
47 result.addFailure(self, (Exception, Exception(), None))
48 # Since TAP will not provide assertion data, clean up the assertion
49 # section so it is not so spaced out.
50 test, err = result.failures[-1]
51 result.failures[-1] = (test, '')
52
53 def __repr__(self):
54 return '<file={filename}>'.format(filename=self._filename)
This page took 0.029366 seconds and 4 git commands to generate.