diff --git a/src/kernels/execution/cellExecutionMessageHandler.ts b/src/kernels/execution/cellExecutionMessageHandler.ts index 7b43ab60efd..7b136309471 100644 --- a/src/kernels/execution/cellExecutionMessageHandler.ts +++ b/src/kernels/execution/cellExecutionMessageHandler.ts @@ -967,7 +967,7 @@ export class CellExecutionMessageHandler implements IDisposable { return; } - if (msg.parent_header.msg_id === 'comm_msg' && msg.header.msg_type === 'stream') { + if (msg.parent_header.msg_type === 'comm_msg' && msg.header.msg_type === 'stream') { // Fix for https://github.com/microsoft/vscode-jupyter/issues/15996 // We're not interested in stream messages that are part of comm messages. return; @@ -1237,5 +1237,5 @@ function doesNotebookRendererSupportRenderingNestedOutputsInWidgets() { if (!version) { return false; } - return version.compare(new SemVer('1.0.23')) >= 0; + return version.compare(new SemVer('1.1.0')) >= 0; } diff --git a/src/test/datascience/widgets/notebooks/button_widget_comm_msg.ipynb b/src/test/datascience/widgets/notebooks/button_widget_comm_msg.ipynb index cf18cfd63f5..83f3bb0c4ce 100644 --- a/src/test/datascience/widgets/notebooks/button_widget_comm_msg.ipynb +++ b/src/test/datascience/widgets/notebooks/button_widget_comm_msg.ipynb @@ -9,11 +9,13 @@ "import ipywidgets as widgets\n", "from IPython.display import display\n", "button = widgets.Button(description=\"Click Me!\")\n", + "out = widgets.Output()\n", "\n", "display(button)\n", "\n", "def on_button_clicked(b):\n", - " print(\"Button clicked.\")\n", + " with out:\n", + " print(\"Button clicked.\")\n", "\n", "button.on_click(on_button_clicked)" ] @@ -24,7 +26,16 @@ "metadata": {}, "outputs": [], "source": [ - "display(button)" + "button" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "out" ] } ], diff --git a/src/test/datascience/widgets/notebooks/interactive_button.ipynb b/src/test/datascience/widgets/notebooks/interactive_button.ipynb deleted file mode 100644 index 742dd5b15ab..00000000000 --- a/src/test/datascience/widgets/notebooks/interactive_button.ipynb +++ /dev/null @@ -1,28 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from IPython.display import display\n", - "from ipywidgets import widgets, interactive\n", - "button = widgets.Button(description=\"Click Me!\")\n", - "def on_button_clicked(b):\n", - " print(\"Button clicked\")\n", - "\n", - "display(button)\n", - "button.on_click(on_button_clicked)\n" - ] - } - ], - "metadata": { - "language_info": { - "name": "python" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts b/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts index 1b78327037e..2790232f95a 100644 --- a/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts +++ b/src/test/datascience/widgets/standardWidgets.vscode.common.test.ts @@ -31,8 +31,7 @@ import { runCell, selectDefaultController, waitForCellExecutionToComplete, - waitForExecutionCompletedSuccessfully, - waitForTextOutput + waitForExecutionCompletedSuccessfully } from '../notebook/helper'; import { hideOutputPanel, initializeWidgetComms, Utils } from './commUtils'; import { WidgetRenderingTimeoutForTests } from './constants'; @@ -245,15 +244,17 @@ suite('Standard IPyWidget Tests @widgets', function () { }, editor ); - const [cell0, cell1] = window.activeNotebookEditor!.notebook.getCells(); + const [cell0, cell1, cell2] = window.activeNotebookEditor!.notebook.getCells(); await executeCellAndWaitForOutput(cell0, comms); await executeCellAndWaitForOutput(cell1, comms); + await executeCellAndWaitForOutput(cell2, comms); await assertOutputContainsHtml(cell0, comms, ['Click Me!', ' { // // https://github.com/microsoft/vscode-jupyter/issues/8748 @@ -483,33 +484,6 @@ suite('Standard IPyWidget Tests @widgets', function () { () => `Output doesn't contain text 'Bar' or still contains 'Outside, Inside, Foo', html is ${html}` ); }); - test('Interactive Button', async () => { - await initializeNotebookForWidgetTest( - disposables, - { - templateFile: 'interactive_button.ipynb' - }, - editor - ); - const cell = window.activeNotebookEditor!.notebook.cellAt(0); - - await executeCellAndWaitForOutput(cell, comms); - await assertOutputContainsHtml(cell, comms, ['Click Me!', ' { - assert.strictEqual(getTextOutputValue(cell.outputs[1]).trim(), 'Button clicked'); - return true; - }, - 5_000, - () => - `Expected 'Button clicked' to exist in ${ - cell.outputs.length > 1 ? getTextOutputValue(cell.outputs[1]) : '' - }` - ); - }); test('Interactive Function', async () => { await initializeNotebookForWidgetTest( disposables,