def test_map_skill_name_to_level_non_int_level(self):
     with self.assertRaises(TypeError):
         map_skill_name_to_level([{'name': 'Python', 'level': '123'}])
 def test_map_skill_name_to_level_with_valid_argument(self):
     skills = [{'name': 'Python', 'level': 5}, {'name': 'C++', 'level': 10}]
     skills_return = {'Python': 5, 'C++': 10}
     self.assertEqual(map_skill_name_to_level(skills), skills_return)
 def test_map_skill_name_to_level_non_string_name(self):
     with self.assertRaises(TypeError):
         map_skill_name_to_level([{'name': 123, 'level': 10}])
 def test_map_skill_name_to_level_skill_with_more_keys(self):
     with self.assertRaises(ValueError):
         map_skill_name_to_level([{'name': 'C++', 'level': 10, 'exp': 10}])
 def test_map_skill_name_to_level_skill_with_no_level(self):
     skill_no_level = [{'name': 'Python'}, {'name': 'C++', 'level': 10}]
     with self.assertRaises(ValueError):
         map_skill_name_to_level(skill_no_level)
 def test_map_skill_name_to_level_unnamed_skill(self):
     skill_no_name = [{'name': 'C++', 'level': 10}, {'level': 15}]
     with self.assertRaises(ValueError):
         map_skill_name_to_level(skill_no_name)
 def test_map_skill_name_to_level_non_list_argument(self):
     with self.assertRaises(TypeError):
         map_skill_name_to_level({'name': 'C++', 'level': 10})