void () { runPythonTest(new PySmartStepIntoDebuggerTask("test_smart_step_into_binary_operator2.py") { @Override public void before() { toggleBreakpoint(16); } @Override public void testing() throws Exception { waitForPause(); assertSmartStepIntoVariants("__add__", "__sub__", "Point", "__sub__", "Point", "__add__"); smartStepInto("__sub__", 0); waitForPause(); eval("other.x").hasValue("3"); eval("other.y").hasValue("3"); stepOver(); waitForPause(); smartStepInto("Point", 0); waitForPause(); eval("x").hasValue("4"); eval("y").hasValue("4"); stepOver(); waitForPause(); stepOver(); waitForPause(); assertSmartStepIntoVariants("__sub__", "Point", "__add__"); resume(); waitForTerminate(); } }); }