def test_map_enum_reverse_ignores_keys_for_clashing_values(self): # This enum has two keys for each of its values. We'll make the # mapping ignore the duplicates. The values are still mapped, but # only to the non-ignored keys. # We jumble up the ordering a bit to try and trip up any bugs. The # nondeterministic traversal order of a dict may accidentally hide # bugs if the order is too predictable. class Enum: ONE = 1 FIVE = 5 ONE_2 = 1 TWO = 2 THREE_2 = 3 THREE = 3 FOUR_2 = 4 TWO_2 = 2 FOUR = 4 FIVE_2 = 5 self.assertEqual( {1: "ONE", 2: "TWO", 3: "THREE", 4: "FOUR", 5: "FIVE"}, map_enum_reverse( Enum, ignore=["ONE_2", "TWO_2", "THREE_2", "FOUR_2", "FIVE_2"] ), )
def filter_by_ip_family(self, family): possible_families = map_enum_reverse(IPADDRESS_FAMILY) if family not in possible_families: raise ValueError("IP address family %r is not a member of " "IPADDRESS_FAMILY." % family) return self.extra( where=["family(maasserver_staticipaddress.ip) = %s"], params=[family], )
def filter_by_subnet_cidr_family(self, family): possible_families = map_enum_reverse(IPADDRESS_FAMILY) if family not in possible_families: raise ValueError( "Subnet CIDR family %r is not a member of " "IPADDRESS_FAMILY." % family) return self.extra( tables=["maasserver_subnet"], where=[ "maasserver_staticipaddress.subnet_id = maasserver_subnet.id", "family(maasserver_subnet.cidr) = %s", ], params=[family])
def __str__(self): # Attempt to show the symbolic alloc_type name if possible. type_names = map_enum_reverse(IPADDRESS_TYPE) strtype = type_names.get(self.alloc_type, "%s" % self.alloc_type) return "%s:type=%s" % (self.ip, strtype)
def test_map_enum_reverse_ignores_unwanted_keys(self): class Enum: ZERO = 0 ONE = 1 self.assertEqual({0: "ZERO"}, map_enum_reverse(Enum, ignore=["ONE"]))
def test_map_enum_reverse_maps_values(self): class Enum: ONE = 1 NINE = 9 self.assertEqual({1: "ONE", 9: "NINE"}, map_enum_reverse(Enum))
def test_map_enum_reverse_maps_values(self): class Enum: ONE = 1 NINE = 9 self.assertEqual({1: 'ONE', 9: 'NINE'}, map_enum_reverse(Enum))