| 111 | |
| 112 | |
| 113 | class TestResults(namedtuple('TestResults', 'failed attempted')): |
| 114 | def __new__(cls, failed, attempted, *, skipped=0): |
| 115 | results = super().__new__(cls, failed, attempted) |
| 116 | results.skipped = skipped |
| 117 | return results |
| 118 | |
| 119 | def __repr__(self): |
| 120 | if self.skipped: |
| 121 | return (f'TestResults(failed={self.failed}, ' |
| 122 | f'attempted={self.attempted}, ' |
| 123 | f'skipped={self.skipped})') |
| 124 | else: |
| 125 | # Leave the repr() unchanged for backward compatibility |
| 126 | # if skipped is zero |
| 127 | return super().__repr__() |
| 128 | |
| 129 | |
| 130 | # There are 4 basic classes: |
searching dependent graphs…