Coverage for backend/django/Economics/reference_data/unit_options.py: 100%
11 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-06-23 21:51 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-06-23 21:51 +0000
1from Economics.shared.choices import DefaultRateType
2from Economics.shared.unit_options import (
3 MAINTENANCE_RATE_UNIT_OPTIONS,
4 STEAM_PRICE_UNIT_OPTIONS,
5 UnitOption,
6 currency_prefix,
7 price_unit_options_for_rate_unit,
8 with_current_unit,
9 with_currency,
10)
13def default_rate_unit_options_by_type(currency: str = "NZD") -> dict[str, list[UnitOption]]:
14 return {
15 DefaultRateType.ELECTRICITY: price_unit_options_for_rate_unit(f"{currency}/kWh", currency=currency),
16 DefaultRateType.NATURAL_GAS: price_unit_options_for_rate_unit(f"{currency}/GJ", currency=currency),
17 DefaultRateType.DIESEL: price_unit_options_for_rate_unit(f"{currency}/GJ", currency=currency),
18 DefaultRateType.FUEL_OIL: price_unit_options_for_rate_unit(f"{currency}/GJ", currency=currency),
19 DefaultRateType.STEAM: with_currency(STEAM_PRICE_UNIT_OPTIONS, currency=currency),
20 DefaultRateType.MAINTENANCE: list(MAINTENANCE_RATE_UNIT_OPTIONS),
21 }
24def default_rate_display_unit_options(default_rate) -> list[UnitOption]:
25 currency = currency_prefix(default_rate.display_unit) or "NZD"
26 if default_rate.rate_type == DefaultRateType.STEAM:
27 return with_current_unit(with_currency(STEAM_PRICE_UNIT_OPTIONS, currency=currency), default_rate.display_unit)
28 if default_rate.rate_type == DefaultRateType.MAINTENANCE:
29 return with_current_unit(MAINTENANCE_RATE_UNIT_OPTIONS, default_rate.display_unit)
30 return price_unit_options_for_rate_unit(default_rate.display_unit, currency=currency)