diff --git a/IPython/testing/iptestcontroller.py b/IPython/testing/iptestcontroller.py index 3a04713..87277cd 100644 --- a/IPython/testing/iptestcontroller.py +++ b/IPython/testing/iptestcontroller.py @@ -22,7 +22,10 @@ import subprocess import time import re -from .iptest import have, test_group_names as py_test_group_names, test_sections, StreamCapturer +from .iptest import ( + have, test_group_names as py_test_group_names, test_sections, StreamCapturer, + test_for, +) from IPython.utils.path import compress_user from IPython.utils.py3compat import bytes_to_str from IPython.utils.sysinfo import get_sys_info @@ -288,7 +291,12 @@ class JSController(TestController): @property def will_run(self): - return all(have[a] for a in self.requirements + [self.engine]) + should_run = all(have[a] for a in self.requirements + [self.engine]) + tornado4 = test_for('tornado.version_info', (4,0,0), callback=None) + if should_run and self.engine == 'phantomjs' and tornado4: + print("phantomjs cannot connect websockets to tornado 4", file=sys.stderr) + return False + return should_run def _init_server(self): "Start the notebook server in a separate process"