[IPython-dev] Accessing get_ipython() within an embedded shell

Jacob Vanderplas jakevdp at cs.washington.edu
Tue Apr 10 01:41:58 EDT 2018


I'm trying to create automated tests for some magic functions within a
pytest framework. I've figured out how to do part of what I need using an
embedded interactive shell; briefly, I do something like this:

from IPython.terminal.embed import InteractiveShellEmbed
ipshell = InteractiveShellEmbed()
out = ipshell.run_cell("%my_magic_command")
assert out.result == expected_result

The problem I encounter is that my magic function optionally uses IPython
.get_ipython().user_ns to access variables in the user namespace, and
IPython.get_ipython() returns None when run within an embedded shell in
this way.

Is there a way to create a simple embedded shell like this one that will
behave as if it is an actual IPython shell, with IPython.get_ipython()
defined?

Thanks,

  Jake
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ipython-dev/attachments/20180410/b1e3d0cd/attachment.html>


More information about the IPython-dev mailing list