(self)
| 131 | return f"{red}{self.test_name} failed{reset}" |
| 132 | |
| 133 | def __str__(self) -> str: |
| 134 | ansi = get_colors() |
| 135 | green = ansi.GREEN |
| 136 | red = ansi.BOLD_RED |
| 137 | reset = ansi.RESET |
| 138 | yellow = ansi.YELLOW |
| 139 | |
| 140 | match self.state: |
| 141 | case State.PASSED: |
| 142 | return f"{green}{self.test_name} passed{reset}" |
| 143 | case State.FAILED: |
| 144 | return f"{red}{self._format_failed()}{reset}" |
| 145 | case State.SKIPPED: |
| 146 | return f"{yellow}{self.test_name} skipped{reset}" |
| 147 | case State.UNCAUGHT_EXC: |
| 148 | return ( |
| 149 | f"{red}{self.test_name} failed (uncaught exception){reset}" |
| 150 | ) |
| 151 | case State.REFLEAK: |
| 152 | return f"{red}{self.test_name} failed (reference leak){reset}" |
| 153 | case State.ENV_CHANGED: |
| 154 | return f"{red}{self.test_name} failed (env changed){reset}" |
| 155 | case State.RESOURCE_DENIED: |
| 156 | return f"{yellow}{self.test_name} skipped (resource denied){reset}" |
| 157 | case State.INTERRUPTED: |
| 158 | return f"{yellow}{self.test_name} interrupted{reset}" |
| 159 | case State.WORKER_FAILED: |
| 160 | return ( |
| 161 | f"{red}{self.test_name} worker non-zero exit code{reset}" |
| 162 | ) |
| 163 | case State.WORKER_BUG: |
| 164 | return f"{red}{self.test_name} worker bug{reset}" |
| 165 | case State.DID_NOT_RUN: |
| 166 | return f"{yellow}{self.test_name} ran no tests{reset}" |
| 167 | case State.TIMEOUT: |
| 168 | assert self.duration is not None, "self.duration is None" |
| 169 | return f"{self.test_name} timed out ({format_duration(self.duration)})" |
| 170 | case _: |
| 171 | raise ValueError( |
| 172 | f"{red}unknown result state: {{state!r}}{reset}" |
| 173 | ) |
| 174 | |
| 175 | def has_meaningful_duration(self): |
| 176 | return State.has_meaningful_duration(self.state) |
nothing calls this directly
no test coverage detected