| 278 | |
| 279 | |
| 280 | def test_track() -> None: |
| 281 | console = Console( |
| 282 | file=io.StringIO(), |
| 283 | force_terminal=True, |
| 284 | width=60, |
| 285 | color_system="truecolor", |
| 286 | legacy_windows=False, |
| 287 | _environ={}, |
| 288 | ) |
| 289 | test = ["foo", "bar", "baz"] |
| 290 | expected_values = iter(test) |
| 291 | for value in track( |
| 292 | test, "test", console=console, auto_refresh=False, get_time=MockClock(auto=True) |
| 293 | ): |
| 294 | assert value == next(expected_values) |
| 295 | result = console.file.getvalue() |
| 296 | print(repr(result)) |
| 297 | expected = "\x1b[?25l\r\x1b[2Ktest \x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m 0%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest \x1b[38;2;249;38;114m━━━━━━━━━━━━━\x1b[0m\x1b[38;5;237m╺\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m 33%\x1b[0m \x1b[36m-:--:--\x1b[0m\r\x1b[2Ktest \x1b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m\x1b[38;2;249;38;114m╸\x1b[0m\x1b[38;5;237m━━━━━━━━━━━━━\x1b[0m \x1b[35m 67%\x1b[0m \x1b[36m0:00:06\x1b[0m\r\x1b[2Ktest \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m100%\x1b[0m \x1b[33m0:00:19\x1b[0m\r\x1b[2Ktest \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m100%\x1b[0m \x1b[33m0:00:19\x1b[0m\n\x1b[?25h" |
| 298 | print("--") |
| 299 | print("RESULT:") |
| 300 | print(result) |
| 301 | print(repr(result)) |
| 302 | print("EXPECTED:") |
| 303 | print(expected) |
| 304 | print(repr(expected)) |
| 305 | |
| 306 | assert result == expected |
| 307 | |
| 308 | |
| 309 | def test_progress_track() -> None: |