26 lines
991 B
Python
26 lines
991 B
Python
from datetime import datetime, timezone as dt_timezone
|
|
import pytest
|
|
|
|
from apps.core.templatetags.jalali import jalali_date, jalali_datetime, jalali_datetime_precise, persian_time
|
|
|
|
|
|
def test_jalali_datetime_uses_iran_time_persian_month_and_digits():
|
|
value = datetime(2026, 9, 6, 5, 0, tzinfo=dt_timezone.utc)
|
|
assert jalali_datetime(value) == "۱۵ شهریور ۱۴۰۵، ساعت ۰۸:۳۰"
|
|
assert jalali_date(value) == "۱۵ شهریور ۱۴۰۵"
|
|
assert persian_time(value) == "۰۸:۳۰"
|
|
|
|
|
|
def test_jalali_filters_fail_safely_for_empty_values():
|
|
assert jalali_datetime(None) == ""
|
|
assert jalali_date(None) == ""
|
|
assert persian_time(None) == ""
|
|
|
|
|
|
@pytest.mark.parametrize("value,expected", [
|
|
(datetime(2026, 9, 5, 22, 31, 17, tzinfo=dt_timezone.utc), "۱۵ شهریور ۱۴۰۵، ساعت ۰۲:۰۱:۱۷"),
|
|
(None, ""),
|
|
])
|
|
def test_opening_timestamp_includes_seconds_in_iran_time(value, expected):
|
|
assert jalali_datetime_precise(value) == expected
|