def parse_cal_names(cal_names): cal_colors = {} for name in cal_names: cal_color = 'default' parts = name.split('#') parts_count = len(parts) if parts_count >= 1: cal_name = parts[0] if len(parts) == 2: cal_color = valid_color_name(parts[1]) if len(parts) > 2: raise ValueError('Cannot parse calendar name: "%s"' % name) cal_colors[cal_name] = cal_color return [CalName(name=k, color=cal_colors[k]) for k in cal_colors.keys()]
def test_valid_color_name(): with pytest.raises(ArgumentTypeError): valid_color_name('this_is_not_a_colorname')