void () { runPythonTest(new PyDebuggerTask("/debug", "test_set_value_class.py") { @Override public void before() { toggleBreakpoint(getFilePath(getScriptName()), 6); } @Override public void testing() throws Exception { waitForPause(); List<PyDebugValue> frameVariables = loadFrame(); PyDebugValue var = findDebugValueByName(frameVariables, "foo"); List<XValue> children = XDebuggerTestUtil.collectChildren(var); PyDebugValue one = (PyDebugValue)children.get(0); PyDebugValue two = (PyDebugValue)children.get(1); eval("foo.fst").hasValue("1"); myDebugProcess.changeVariable(one, "\"change\""); eval("foo.fst").hasValue("'change'"); eval("foo.snd").hasValue("'hello'"); myDebugProcess.changeVariable(two, "['1', '2', '3']"); eval("foo.snd").hasValue("['1', '2', '3']"); children = XDebuggerTestUtil.collectChildren(var); two = (PyDebugValue)children.get(1); children = XDebuggerTestUtil.collectChildren(two); one = (PyDebugValue)children.get(0); eval("foo.snd[0]").hasValue("'1'"); myDebugProcess.changeVariable(one, "'hello'"); eval("foo.snd[0]").hasValue("'hello'"); } }); }