pythonwhat/checks/check_has_context.py
def has_context_with(state, incorrect_msg, exact_names):
    """When dispatched on with statements, has_context loops over each context manager.

    Note: This is to allow people to call has_context on the with statement, rather than
          having to manually loop over each context manager.

          e.g. Ex().check_with(0).has_context() vs Ex().check_with(0).check_context(0).has_context()
    """

    for i in range(len(state.solution_parts["context"])):
        ctxt_state = check_part_index(state, "context", i, "{{ordinal}} context")
        _has_context(ctxt_state, incorrect_msg or MSG_INCORRECT_WITH, exact_names)

    return state
def has_context_with(state, incorrect_msg, exact_names):
    for i in range(len(state.solution_parts["context"])):
        ctxt_state = check_part_index(state, "context", i, "{{ordinal}} context")
        _has_context(ctxt_state, incorrect_msg or MSG_INCORRECT_WITH, exact_names)

    return state
def has_context_with ( state , incorrect_msg , exact_names ) : for i in range ( len ( state . solution_parts [ "context" ] ) ) : ctxt_state = check_part_index ( state , "context" , i , "{{ordinal}} context" ) _has_context ( ctxt_state , incorrect_msg or MSG_INCORRECT_WITH , exact_names ) return state
When dispatched on with statements, has_context loops over each context manager.

    Note: This is to allow people to call has_context on the with statement, rather than
          having to manually loop over each context manager.

          e.g. Ex().check_with(0).has_context() vs Ex().check_with(0).check_context(0).has_context()
When dispatched on with statements has_context loops over each context manager .