Это довольно просто, просто оберните волшебство %%capture
пользовательской функцией, показывающей захваченный вывод:
from IPython.core import magic
@magic.register_cell_magic
def non_suppressing_capture(variable, cell):
get_ipython().magics_manager.magics['cell']['capture'](variable, cell)
globals()[variable].show()
и (после выполнения вышеуказанного кода) используйте его так:
%%non_suppressing_capture cell1
print('Hello, world!')
На самом деле ваш тест не пройдёт, если вы не добавите символ новой строки в строку теста:
if cell1.stdout == 'Hello, world!\n':
print('Success!')
else:
print('Tests failed')
IPython magic - мощный инструмент. Вы можете найти более продвинутые примеры в документации, см .: определение пользовательских магии глава и документы API: core.magic , core.magic_arguments .