Esempio n. 1
0
    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"]
            ),
        )
Esempio n. 2
0
 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],
     )
Esempio n. 3
0
 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])
Esempio n. 4
0
 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)
Esempio n. 5
0
    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"]))
Esempio n. 6
0
    def test_map_enum_reverse_maps_values(self):
        class Enum:
            ONE = 1
            NINE = 9

        self.assertEqual({1: "ONE", 9: "NINE"}, map_enum_reverse(Enum))
Esempio n. 7
0
    def test_map_enum_reverse_maps_values(self):
        class Enum:
            ONE = 1
            NINE = 9

        self.assertEqual({1: 'ONE', 9: 'NINE'}, map_enum_reverse(Enum))