From f6a75bd082373ec2237874939c712528d5acfb2a Mon Sep 17 00:00:00 2001 From: "mark.j0hnst0n" Date: Thu, 4 Jul 2024 10:12:22 +0100 Subject: [PATCH] removal of extra enum structure to use existing mapping --- mail/enums.py | 14 ++---------- mail/libraries/lite_to_edifact_converter.py | 6 +----- mail/serializers.py | 5 +---- mail/tests/test_enums.py | 24 +-------------------- 4 files changed, 5 insertions(+), 44 deletions(-) diff --git a/mail/enums.py b/mail/enums.py index 5d1bc663..2364d4af 100644 --- a/mail/enums.py +++ b/mail/enums.py @@ -200,15 +200,8 @@ class UnitMapping(enum.Enum): MCG = 116 # microgram MCL = 110 # microlitre - @classmethod - def serializer_choices(cls): - # Used by the API serializer for validation. - return list(cls.__members__.keys()) - - -class LegacyUnitMapping(enum.Enum): - # These units below are the old values that are not used going forward - # They are kept here for backwards compatibility + # These units below are the old values or LegacyUnitMapping that are + # not used going forward. They are kept here for backwards compatibility MIM = 111 # milligram MCM = 116 # microgram MIR = 74 # millilitre @@ -219,9 +212,6 @@ def serializer_choices(cls): # Used by the API serializer for validation. return list(cls.__members__.keys()) - def get_class_attributes(cls): - return [attr for attr in dir(cls)] - class MailReadStatuses(TextChoices): READ = "READ" diff --git a/mail/libraries/lite_to_edifact_converter.py b/mail/libraries/lite_to_edifact_converter.py index aca96dcc..cf1ce0da 100644 --- a/mail/libraries/lite_to_edifact_converter.py +++ b/mail/libraries/lite_to_edifact_converter.py @@ -13,7 +13,6 @@ LicenceActionEnum, LicenceTypeEnum, UnitMapping, - LegacyUnitMapping, ) from mail.libraries import chiefprotocol, chieftypes from mail.libraries.edifact_validator import ( @@ -137,10 +136,7 @@ def generate_lines_for_licence(licence: LicencePayload) -> Iterable[chieftypes._ controlled_by = "Q" # usage is controlled by quantity only quantity = commodity.get("quantity") - if commodity["unit"] in LegacyUnitMapping.get_class_attributes(LegacyUnitMapping): - qunit = LegacyUnitMapping[commodity["unit"]] - else: - qunit = UnitMapping[commodity["unit"]] + qunit = UnitMapping[commodity["unit"]] if qunit == UnitMapping.NAR: quantity = int(quantity) diff --git a/mail/serializers.py b/mail/serializers.py index 0bec02f7..38bcb332 100644 --- a/mail/serializers.py +++ b/mail/serializers.py @@ -146,10 +146,7 @@ class GoodSerializer(serializers.Serializer): name = serializers.CharField() description = serializers.CharField(max_length=2000, allow_blank=True) quantity = serializers.DecimalField(decimal_places=3, max_digits=13) - combined_unit_mapping_choices = ( - enums.UnitMapping.serializer_choices() + enums.LegacyUnitMapping.serializer_choices() - ) - unit = serializers.ChoiceField(choices=combined_unit_mapping_choices) + unit = serializers.ChoiceField(choices=enums.UnitMapping.serializer_choices()) class CountrySerializer(serializers.Serializer): diff --git a/mail/tests/test_enums.py b/mail/tests/test_enums.py index 69c20bc8..1e9ff1d3 100644 --- a/mail/tests/test_enums.py +++ b/mail/tests/test_enums.py @@ -1,6 +1,6 @@ import unittest -from mail.enums import UnitMapping, LegacyUnitMapping +from mail.enums import UnitMapping class UnitMappingTests(unittest.TestCase): @@ -25,34 +25,12 @@ def test_convert_code(self): with self.subTest(code=code, value=value): self.assertEqual(value, UnitMapping[code].value) - def test_convert_legacy_code(self): - data = [ - ("MIM", 111), - ("MCM", 116), - ("MIR", 74), - ("MCR", 110), - ] - - for code, value in data: - with self.subTest(code=code, value=value): - self.assertEqual(value, LegacyUnitMapping[code].value) - def test_convert_none(self): with self.assertRaises(KeyError): UnitMapping[None] - def test_convert_none_old(self): - with self.assertRaises(KeyError): - LegacyUnitMapping[None] - def test_serializer_choices(self): choices = UnitMapping.serializer_choices() expected = ["NAR", "GRM", "KGM", "MTK", "MTR", "LTR", "MTQ", "MLT", "ITG", "MGM", "TON", "MCG", "MCL"] self.assertEqual(choices, expected) - - def test_serializer_choices_old(self): - choices = LegacyUnitMapping.serializer_choices() - expected = ["MIM", "MCM", "MIR", "MCR"] - - self.assertEqual(choices, expected)