#Register as an honor in any course modes with no payment option
([('audit',0),('honor',0)],'honor',True),
# ([('professional', 0)], 'honor', True), #This can not be the case as verified courses always has min_price
# ([('verified', 0)], 'honor', True), #This can not be the case as verified courses always has min_price
# ([('professional', 0), ('verified', 0)], 'honor', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 0), ('professional', 0)], 'honor', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 0), ('verified', 0)], 'honor', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 0), ('verified', 0), ('professional', 0)], 'honor', True), #This can not be the case as verified courses always has min_price
([('audit',0)],'honor',True),
([('honor',0)],'honor',True),
([],'honor',True),
#Register as an honor in any course modes which has payment option
#Register as an audit in any course modes with no payment option
([('audit',0),('honor',0)],'audit',True),
# ([('professional', 0)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('verified', 0)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('professional', 0), ('verified', 0)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 0), ('professional', 0)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 0), ('verified', 0)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 0), ('verified', 0), ('professional', 0)], 'audit', True), #This can not be the case as verified courses always has min_price
([('audit',0)],'audit',True),
([('honor',0)],'audit',True),
([],'audit',True),
#Register as an audit in any course modes which has payment option
([('audit',0),('honor',10)],'audit',False),
# ([('professional', 20)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('verified', 20)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('professional', 20), ('verified', 20)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 5), ('professional', 20)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 10), ('verified', 20)], 'audit', True), #This can not be the case as verified courses always has min_price
# ([('audit', 0), ('honor', 10), ('verified', 20), ('professional', 20)], 'audit', True), #This can not be the case as verified courses always has min_price
([('audit',10)],'audit',False),
([('honor',10)],'audit',False),
([],'audit',True),
#Register as a verified in any course modes which has payment option
# return_val = donations_enabled and ((not is_verified_mode and not has_payment_option) or (is_verified_mode and enrollment.mode in ['audit', 'honor']))
# return_val = donations_enabled and not is_verified_mode and not has_payment_option