summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2013-08-11 12:06:56 +0000
committerpad <pad@vm-pad-b.spline.inf.fu-berlin.de>2013-08-11 12:06:56 +0000
commit6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb (patch)
treeaed4441fec1048aabbe28336e7e8802df1eaf61d
parent00136ea418d29f31ead1da17a7e30d79bfee439b (diff)
downloadpadlite-teams-6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb.tar.gz
padlite-teams-6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb.tar.bz2
padlite-teams-6eaa3d19b016d0fd5b9a3ba7feea9f3a95993dbb.zip
test: use {i,b}python if available
-rwxr-xr-xtest.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/test.py b/test.py
index 0fdc59f..9013dcb 100755
--- a/test.py
+++ b/test.py
@@ -4,5 +4,41 @@ import padlite
import settings
import code
+def load_interpreters():
+ """ Load a dict of available Python interpreters """
+ interpreters = dict(python=lambda v: InteractiveConsole(v).interact())
+ best = "python"
+ try:
+ import bpython.cli
+ interpreters["bpython"] = lambda v: bpython.cli.main(args=[],
+ locals_=v)
+ best = "bpython"
+ except ImportError:
+ pass
+
+ try:
+ # whether ipython is actually better than bpython is
+ # up for debate, but this is the behavior that existed
+ # before --interpreter was added, so we call IPython
+ # better
+ import IPython
+ # pylint: disable=E1101
+ if hasattr(IPython, "Shell"):
+ interpreters["ipython"] = lambda v: \
+ IPython.Shell.IPShell(argv=[], user_ns=v).mainloop()
+ best = "ipython"
+ elif hasattr(IPython, "embed"):
+ interpreters["ipython"] = lambda v: IPython.embed(user_ns=v)
+ best = "ipython"
+ else:
+ print("Unknown IPython API version")
+ # pylint: enable=E1101
+ except ImportError:
+ pass
+
+ interpreters['best'] = interpreters[best]
+ return interpreters
+
p = padlite.PadLite(settings.APIKEY, settings.HOST)
-code.interact(local=locals())
+interpreters = load_interpreters()
+interpreters['best'](locals())