Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions tests/test_cli_output.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
"""Unit tests for cli_output module."""

from datetime import datetime, timezone
from unittest.mock import Mock, patch

from cli_output.status import (
Expand All @@ -10,6 +11,14 @@
print_status,
)

FROZEN_NOW = datetime(2025, 6, 15, 12, 0, tzinfo=timezone.utc)


class FrozenDatetime(datetime):
@classmethod
def now(cls, tz=None):
return FROZEN_NOW if tz is None else FROZEN_NOW.astimezone(tz)


class TestProgressBar:
"""Tests for _create_progress_bar function."""
Expand Down Expand Up @@ -52,6 +61,7 @@ def test_custom_width(self):
assert bar == "█" * 5 + "░" * 5


@patch("cli_output.status.datetime", FrozenDatetime)
class TestDisplayCreditLine:
"""Tests for _display_credit_line function."""

Expand Down Expand Up @@ -132,6 +142,7 @@ def test_timezone_naive_datetime(self, mock_console):
mock_console.print.assert_called_once()


@patch("cli_output.status.datetime", FrozenDatetime)
class TestDisplayBucketCreditLine:
"""Tests for _display_bucket_credit_line function."""

Expand Down Expand Up @@ -192,6 +203,7 @@ def test_timezone_naive_datetime(self, mock_console):
mock_console.print.assert_called_once()


@patch("cli_output.status.datetime", FrozenDatetime)
class TestDisplayStatusMessage:
"""Tests for _display_status_message function."""

Expand Down Expand Up @@ -271,6 +283,7 @@ def test_null_plan_credits_and_empty_purchased(self, mock_console):
assert "No rendering credits remaining" in call_args


@patch("cli_output.status.datetime", FrozenDatetime)
class TestPrintStatus:
"""Tests for print_status function."""

Expand Down
Loading