Example #1
0
    def test_equality(self):
        mapping1 = structs.LanguageMap()
        mapping1[structs.LanguageTag.fromstr("de-de")] = 10
        mapping1[structs.LanguageTag.fromstr("en-US")] = 20

        mapping2 = structs.LanguageMap()
        mapping2[structs.LanguageTag.fromstr("de-DE")] = 10
        mapping2[structs.LanguageTag.fromstr("en-US")] = 20

        mapping3 = structs.LanguageMap()
        mapping3[structs.LanguageTag.fromstr("de-DE")] = 10
        mapping3[structs.LanguageTag.fromstr("en-GB")] = 20

        self.assertEqual(
            mapping1,
            mapping2
        )
        self.assertFalse(mapping1 != mapping2)

        self.assertNotEqual(
            mapping1,
            mapping3
        )
        self.assertFalse(mapping1 == mapping3)

        self.assertNotEqual(
            mapping2,
            mapping3
        )
        self.assertFalse(mapping2 == mapping3)
Example #2
0
    def test_any_returns_only_key(self):
        m = structs.LanguageMap()
        m[None] = "fnord"

        self.assertEqual(m.any(), "fnord")

        m = structs.LanguageMap()
        m[structs.LanguageTag.fromstr("de")] = "Test"

        self.assertEqual(m.any(), "Test")
Example #3
0
    def test_any_returns_same_key_for_same_keyset(self):
        m = structs.LanguageMap()
        m[structs.LanguageTag.fromstr("de")] = "Test"
        m[structs.LanguageTag.fromstr("fr")] = "fnord"

        self.assertEqual(m.any(), "Test")

        m = structs.LanguageMap()
        m[structs.LanguageTag.fromstr("fr")] = "fnord"
        m[structs.LanguageTag.fromstr("de")] = "Test"

        self.assertEqual(m.any(), "Test")
Example #4
0
    def test_any_prefers_None(self):
        m = structs.LanguageMap()
        m[structs.LanguageTag.fromstr("de")] = "Test"
        m[None] = "fnord"

        self.assertEqual(m.any(), "fnord")

        m = structs.LanguageMap()
        m[None] = "fnord"
        m[structs.LanguageTag.fromstr("de")] = "Test"

        self.assertEqual(m.any(), "fnord")
Example #5
0
    def test_lookup_returns_None_key_if_nothing_matches(self):
        mapping = structs.LanguageMap()
        mapping[None] = "foobar"
        mapping[structs.LanguageTag.fromstr("de")] = "Test"
        mapping[structs.LanguageTag.fromstr("en")] = "test"

        self.assertEqual("foobar",
                         mapping.lookup([structs.LanguageRange.fromstr("it")]))
Example #6
0
    def test_setdefault(self):
        l = []
        mapping = structs.LanguageMap()
        result = mapping.setdefault(structs.LanguageTag.fromstr("de-de"), l)

        self.assertIs(result, l)

        result = mapping.setdefault(structs.LanguageTag.fromstr("de-de"), [])

        self.assertIs(result, l)
Example #7
0
    def test_mapping_interface(self):
        key1 = structs.LanguageTag.fromstr("de-DE")
        key2 = structs.LanguageTag.fromstr("en-US")
        key3 = structs.LanguageTag.fromstr("en")

        mapping = structs.LanguageMap()

        self.assertFalse(mapping)
        self.assertEqual(0, len(mapping))

        mapping[key1] = 10

        self.assertIn(key1, mapping)
        self.assertEqual(
            10,
            mapping[key1]
        )

        self.assertSetEqual(
            {key1},
            set(mapping)
        )

        mapping[key2] = 20

        self.assertIn(key2, mapping)
        self.assertEqual(
            20,
            mapping[key2]
        )

        self.assertSetEqual(
            {key1, key2},
            set(mapping)
        )

        key2_prime = structs.LanguageTag.fromstr("en-us")

        self.assertIn(key2_prime, mapping)
        self.assertEqual(
            20,
            mapping[key2_prime]
        )

        self.assertNotIn(key3, mapping)

        del mapping[key1]

        self.assertNotIn(key1, mapping)

        mapping.clear()

        self.assertNotIn(key2, mapping)
Example #8
0
    def test_keys(self):
        key1 = structs.LanguageTag.fromstr("de-DE")
        key2 = structs.LanguageTag.fromstr("en-US")
        key3 = structs.LanguageTag.fromstr("en")

        mapping = structs.LanguageMap()

        mapping[key1] = 10
        mapping[key2] = 20
        mapping[key3] = 30

        self.assertSetEqual({key1, key2, key3}, set(mapping.keys()))
Example #9
0
    def test_values(self):
        key1 = structs.LanguageTag.fromstr("de-DE")
        key2 = structs.LanguageTag.fromstr("en-US")
        key3 = structs.LanguageTag.fromstr("en")

        mapping = structs.LanguageMap()

        mapping[key1] = 10
        mapping[key2] = 20
        mapping[key3] = 30

        self.assertSetEqual({10, 20, 30}, set(mapping.values()))
Example #10
0
    def test_lookup(self):
        key1 = structs.LanguageTag.fromstr("de-DE")
        key2 = structs.LanguageTag.fromstr("en-US")
        key3 = structs.LanguageTag.fromstr("en")

        mapping = structs.LanguageMap()

        mapping[key1] = 10
        mapping[key2] = 20
        mapping[key3] = 30

        self.assertEqual(
            30, mapping.lookup([structs.LanguageRange.fromstr("en-GB")]))
Example #11
0
    def test_items(self):
        key1 = structs.LanguageTag.fromstr("de-DE")
        key2 = structs.LanguageTag.fromstr("en-US")
        key3 = structs.LanguageTag.fromstr("en")

        mapping = structs.LanguageMap()

        mapping[key1] = 10
        mapping[key2] = 20
        mapping[key3] = 30

        self.assertSetEqual({
            (key1, 10),
            (key2, 20),
            (key3, 30),
        }, set(mapping.items()))
Example #12
0
 def test_any_raises_ValueError_on_empty_map(self):
     m = structs.LanguageMap()
     with self.assertRaises(ValueError):
         m.any()
Example #13
0
 def test_implements_mapping(self):
     mapping = structs.LanguageMap()
     self.assertIsInstance(
         mapping,
         collections.abc.MutableMapping
     )