From: Aarni Koskela Date: Fri, 28 Jan 2022 11:28:03 +0000 (+0200) Subject: Make test_smoke more thorough X-Git-Tag: v2.10.0~8^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F826%2Fhead;p=thirdparty%2Fbabel.git Make test_smoke more thorough --- diff --git a/tests/test_smoke.py b/tests/test_smoke.py index f5319f21..052c1cb4 100644 --- a/tests/test_smoke.py +++ b/tests/test_smoke.py @@ -6,32 +6,51 @@ operations don't fail due to odd corner cases on any locale that we ship. """ import decimal -from datetime import datetime - +import datetime import pytest -from babel import Locale -from babel import dates -from babel import numbers + +from babel import Locale, units, dates, numbers + +NUMBERS = ( + decimal.Decimal("-33.76"), # Negative Decimal + decimal.Decimal("13.37"), # Positive Decimal + 1.2 - 1.0, # Inaccurate float + 10, # Plain old integer + 0, # Zero +) @pytest.mark.all_locales def test_smoke_dates(locale): locale = Locale.parse(locale) - instant = datetime.now() + instant = datetime.datetime.now() for width in ("full", "long", "medium", "short"): assert dates.format_date(instant, format=width, locale=locale) assert dates.format_datetime(instant, format=width, locale=locale) assert dates.format_time(instant, format=width, locale=locale) + # Interval test + past = instant - datetime.timedelta(hours=23) + assert dates.format_interval(past, instant, locale=locale) + # Duration test - at the time of writing, all locales seem to have `short` width, + # so let's test that. + duration = instant - instant.replace(hour=0, minute=0, second=0) + for granularity in ('second', 'minute', 'hour', 'day'): + assert dates.format_timedelta(duration, granularity=granularity, format="short", locale=locale) @pytest.mark.all_locales def test_smoke_numbers(locale): locale = Locale.parse(locale) - for number in ( - decimal.Decimal("-33.76"), # Negative Decimal - decimal.Decimal("13.37"), # Positive Decimal - 1.2 - 1.0, # Inaccurate float - 10, # Plain old integer - 0, # Zero - ): + for number in NUMBERS: assert numbers.format_decimal(number, locale=locale) + assert numbers.format_currency(number, "EUR", locale=locale) + assert numbers.format_scientific(number, locale=locale) + assert numbers.format_percent(number / 100, locale=locale) + + +@pytest.mark.all_locales +def test_smoke_units(locale): + locale = Locale.parse(locale) + for unit in ('length-meter', 'mass-kilogram', 'energy-calorie', 'volume-liter'): + for number in NUMBERS: + assert units.format_unit(number, measurement_unit=unit, locale=locale)