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)
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")
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")
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")
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")]))
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)
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)
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()))
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()))
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")]))
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()))
def test_any_raises_ValueError_on_empty_map(self): m = structs.LanguageMap() with self.assertRaises(ValueError): m.any()
def test_implements_mapping(self): mapping = structs.LanguageMap() self.assertIsInstance( mapping, collections.abc.MutableMapping )