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})