<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def has_output(state, text, incorrect_msg="The checker expected to find {{'' if fixed else 'the pattern '}}`{{text}}` in the output of your command.", fixed=False, strip_ansi=True):
 """Check whether student output contains specific text. Before you use ``has_output()``, have a look at ``has_expr_output()`` or ``has_expr_error()``; they might be more fit for your use case. Args: state: State instance describing student and solution code. Can be omitted if used with ``Ex()``. text : text that student output must contain. Can be a regex pattern or a simple string. incorrect_msg: if specified, this overrides the automatically generated feedback message in case ``text`` is not found in the student output. fixed: whether to match ``text`` exactly, rather than using regular expressions. strip_ansi: whether to remove ANSI escape codes from output :Example: Suppose the solution requires you to do: :: echo 'this is a printout!' The following SCT can be written: :: Ex().has_output(r'this\\s+is\\s+a\\s+print\\s*out') Submissions that would pass: :: echo 'this is a print out' test='this is a printout!' && echo $test Submissions that would fail: :: echo 'this is a wrong printout' """


    stu_output = state.student_result

    if strip_ansi: stu_output = _strip_ansi(stu_output)

    # either simple text matching or regex test
    res = text in stu_output if fixed else re.search(text, stu_output)

    if not res:
        _msg = state.build_message(incorrect_msg, fmt_kwargs={ 'text': text, 'fixed': fixed })
        state.do_test(_msg)

    return state