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

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) 

11 

12 

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 } 

22 

23 

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)