@@ -789,7 +789,7 @@ def test_limited_stacking(sct, patt):
789789 assert message (output , patt )
790790
791791
792- ## test has_expr --------------------------------------------------------------
792+ # test has_expr --------------------------------------------------------------
793793
794794
795795@pytest .mark .parametrize (
@@ -815,7 +815,45 @@ def test_has_expr(sct, patt):
815815 assert message (output , patt )
816816
817817
818- ## check_if_else --------------------------------------------------------------
818+ def test_has_expr_replace_focus ():
819+ # Given
820+ sct = "Ex().check_if_else().check_test().has_equal_value(expr_code = '__focus__ == \\ 'valid\\ '')"
821+ feedback_msg = "Great work!"
822+
823+ # When
824+ output = helper .run (
825+ {
826+ "DC_SOLUTION" : "u = 'valid'\n if u:\n print('')" ,
827+ "DC_CODE" : "u = 'valid'\n if u:\n print('')" ,
828+ "DC_SCT" : sct ,
829+ }
830+ )
831+
832+ # Then
833+ assert output ["correct" ]
834+ assert message (output , feedback_msg )
835+
836+
837+ def test_has_expr_replace_focus_fail ():
838+ # Given
839+ sct = "Ex().check_if_else().check_test().has_equal_value(expr_code = '__focus__ == \\ 'valid\\ '')"
840+ feedback_msg = "Check the first if statement. Did you correctly specify the condition? Running the expression <code>u == 'valid'</code> didn't generate the expected result." # nopep8
841+
842+ # When
843+ output = helper .run (
844+ {
845+ "DC_SOLUTION" : "u = 'valid'\n if u:\n print('')" ,
846+ "DC_CODE" : "u = 'wrong'\n if u:\n print('')" ,
847+ "DC_SCT" : sct ,
848+ }
849+ )
850+
851+ # Then
852+ assert not output ["correct" ]
853+ assert message (output , feedback_msg )
854+
855+
856+ # check_if_else --------------------------------------------------------------
819857
820858
821859@pytest .mark .parametrize (
0 commit comments