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