diff --git a/IPython/core/displayhook.py b/IPython/core/displayhook.py index a161c1e..cce7c83 100644 --- a/IPython/core/displayhook.py +++ b/IPython/core/displayhook.py @@ -306,4 +306,4 @@ class CapturingDisplayHook(object): if result is None: return format_dict, md_dict = self.shell.display_formatter.format(result) - self.outputs.append((format_dict, md_dict)) + self.outputs.append({ 'data': format_dict, 'metadata': md_dict }) diff --git a/IPython/core/tests/test_displayhook.py b/IPython/core/tests/test_displayhook.py index 3cca42a..14ab3d2 100644 --- a/IPython/core/tests/test_displayhook.py +++ b/IPython/core/tests/test_displayhook.py @@ -1,4 +1,7 @@ +import sys from IPython.testing.tools import AssertPrints, AssertNotPrints +from IPython.core.displayhook import CapturingDisplayHook +from IPython.utils.capture import CapturedIO ip = get_ipython() @@ -26,3 +29,11 @@ def test_output_quiet(): with AssertNotPrints('2'): ip.run_cell('1+1;\n#commented_out_function()', store_history=True) + +def test_capture_display_hook_format(): + """Tests that the capture display hook conforms to the CapturedIO output format""" + hook = CapturingDisplayHook(ip) + hook({"foo": "bar"}) + captured = CapturedIO(sys.stdout, sys.stderr, hook.outputs) + # Should not raise with RichOutput transformation error + captured.outputs