| 307 | |
| 308 | |
| 309 | def test_progress_track() -> None: |
| 310 | console = Console( |
| 311 | file=io.StringIO(), |
| 312 | force_terminal=True, |
| 313 | width=60, |
| 314 | color_system="truecolor", |
| 315 | legacy_windows=False, |
| 316 | _environ={}, |
| 317 | ) |
| 318 | progress = Progress( |
| 319 | console=console, auto_refresh=False, get_time=MockClock(auto=True) |
| 320 | ) |
| 321 | test = ["foo", "bar", "baz"] |
| 322 | expected_values = iter(test) |
| 323 | with progress: |
| 324 | for value in progress.track(test, description="test"): |
| 325 | assert value == next(expected_values) |
| 326 | result = console.file.getvalue() |
| 327 | print(repr(result)) |
| 328 | 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[36m0:00:00\x1b[0m\r\x1b[2Ktest \x1b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m \x1b[35m100%\x1b[0m \x1b[36m0:00:00\x1b[0m\n\x1b[?25h" |
| 329 | |
| 330 | print(expected) |
| 331 | print(repr(expected)) |
| 332 | print(result) |
| 333 | print(repr(result)) |
| 334 | |
| 335 | assert result == expected |
| 336 | |
| 337 | |
| 338 | def test_columns() -> None: |