Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e91b921

Browse files
committed
remove javascript tests
1 parent ac8edf3 commit e91b921

2 files changed

Lines changed: 3 additions & 215 deletions

File tree

IPython/testing/iptest.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
from nose.plugins import Plugin
3535
from nose.util import safe_str
3636

37-
from IPython.utils.process import is_cmd_found
3837
from IPython.utils.py3compat import bytes_to_str
3938
from IPython.utils.importstring import import_item
4039
from IPython.testing.plugin.ipdoctest import IPythonDoctest
@@ -132,9 +131,6 @@ def test_for(item, min_version=None, callback=extract_version):
132131
have['sphinx'] = test_for('sphinx')
133132
have['jsonschema'] = test_for('jsonschema')
134133
have['terminado'] = test_for('terminado')
135-
have['casperjs'] = is_cmd_found('casperjs')
136-
have['phantomjs'] = is_cmd_found('phantomjs')
137-
have['slimerjs'] = is_cmd_found('slimerjs')
138134

139135
min_zmq = (13,)
140136

IPython/testing/iptestcontroller.py

Lines changed: 3 additions & 211 deletions
Original file line numberDiff line numberDiff line change
@@ -247,218 +247,15 @@ def launch(self, buffer_output=False):
247247
super(PyTestController, self).launch(buffer_output=buffer_output)
248248

249249

250-
js_prefix = 'js/'
251-
252-
def get_js_test_dir():
253-
import IPython.html.tests as t
254-
return os.path.join(os.path.dirname(t.__file__), '')
255-
256-
def all_js_groups():
257-
import glob
258-
test_dir = get_js_test_dir()
259-
all_subdirs = glob.glob(test_dir + '[!_]*/')
260-
return [js_prefix+os.path.relpath(x, test_dir) for x in all_subdirs]
261-
262-
class JSController(TestController):
263-
"""Run CasperJS tests """
264-
265-
requirements = ['zmq', 'tornado', 'jinja2', 'casperjs', 'sqlite3',
266-
'jsonschema']
267-
268-
def __init__(self, section, xunit=True, engine='phantomjs', url=None):
269-
"""Create new test runner."""
270-
TestController.__init__(self)
271-
self.engine = engine
272-
self.section = section
273-
self.xunit = xunit
274-
self.url = url
275-
self.slimer_failure = re.compile('^FAIL.*', flags=re.MULTILINE)
276-
js_test_dir = get_js_test_dir()
277-
includes = '--includes=' + os.path.join(js_test_dir,'util.js')
278-
test_cases = os.path.join(js_test_dir, self.section[len(js_prefix):])
279-
self.cmd = ['casperjs', 'test', includes, test_cases, '--engine=%s' % self.engine]
280-
281-
def setup(self):
282-
self.ipydir = TemporaryDirectory()
283-
self.nbdir = TemporaryDirectory()
284-
self.dirs.append(self.ipydir)
285-
self.dirs.append(self.nbdir)
286-
os.makedirs(os.path.join(self.nbdir.name, os.path.join(u'sub ∂ir1', u'sub ∂ir 1a')))
287-
os.makedirs(os.path.join(self.nbdir.name, os.path.join(u'sub ∂ir2', u'sub ∂ir 1b')))
288-
289-
if self.xunit:
290-
self.add_xunit()
291-
292-
# If a url was specified, use that for the testing.
293-
if self.url:
294-
try:
295-
alive = requests.get(self.url).status_code == 200
296-
except:
297-
alive = False
298-
299-
if alive:
300-
self.cmd.append("--url=%s" % self.url)
301-
else:
302-
raise Exception('Could not reach "%s".' % self.url)
303-
else:
304-
# start the ipython notebook, so we get the port number
305-
self.server_port = 0
306-
self._init_server()
307-
if self.server_port:
308-
self.cmd.append("--port=%i" % self.server_port)
309-
else:
310-
# don't launch tests if the server didn't start
311-
self.cmd = [sys.executable, '-c', 'raise SystemExit(1)']
312-
313-
def add_xunit(self):
314-
xunit_file = os.path.abspath(self.section.replace('/','.') + '.xunit.xml')
315-
self.cmd.append('--xunit=%s' % xunit_file)
316-
317-
def launch(self, buffer_output):
318-
# If the engine is SlimerJS, we need to buffer the output because
319-
# SlimerJS does not support exit codes, so CasperJS always returns 0.
320-
if self.engine == 'slimerjs' and not buffer_output:
321-
return super(JSController, self).launch(capture_output=True)
322-
323-
else:
324-
return super(JSController, self).launch(buffer_output=buffer_output)
325-
326-
def wait(self, *pargs, **kwargs):
327-
"""Wait for the JSController to finish"""
328-
ret = super(JSController, self).wait(*pargs, **kwargs)
329-
# If this is a SlimerJS controller, check the captured stdout for
330-
# errors. Otherwise, just return the return code.
331-
if self.engine == 'slimerjs':
332-
stdout = bytes_to_str(self.stdout)
333-
if ret != 0:
334-
# This could still happen e.g. if it's stopped by SIGINT
335-
return ret
336-
return bool(self.slimer_failure.search(strip_ansi(stdout)))
337-
else:
338-
return ret
339-
340-
def print_extra_info(self):
341-
print("Running tests with notebook directory %r" % self.nbdir.name)
342-
343-
@property
344-
def will_run(self):
345-
should_run = all(have[a] for a in self.requirements + [self.engine])
346-
return should_run
347-
348-
def _init_server(self):
349-
"Start the notebook server in a separate process"
350-
self.server_command = command = [sys.executable,
351-
'-m', 'IPython.html',
352-
'--no-browser',
353-
'--ipython-dir', self.ipydir.name,
354-
'--notebook-dir', self.nbdir.name,
355-
]
356-
# ipc doesn't work on Windows, and darwin has crazy-long temp paths,
357-
# which run afoul of ipc's maximum path length.
358-
if sys.platform.startswith('linux'):
359-
command.append('--KernelManager.transport=ipc')
360-
self.stream_capturer = c = StreamCapturer()
361-
c.start()
362-
env = os.environ.copy()
363-
if self.engine == 'phantomjs':
364-
env['IPYTHON_ALLOW_DRAFT_WEBSOCKETS_FOR_PHANTOMJS'] = '1'
365-
self.server = subprocess.Popen(command,
366-
stdout=c.writefd,
367-
stderr=subprocess.STDOUT,
368-
cwd=self.nbdir.name,
369-
env=env,
370-
)
371-
self.server_info_file = os.path.join(self.ipydir.name,
372-
'profile_default', 'security', 'nbserver-%i.json' % self.server.pid
373-
)
374-
self._wait_for_server()
375-
376-
def _wait_for_server(self):
377-
"""Wait 30 seconds for the notebook server to start"""
378-
for i in range(300):
379-
if self.server.poll() is not None:
380-
return self._failed_to_start()
381-
if os.path.exists(self.server_info_file):
382-
try:
383-
self._load_server_info()
384-
except ValueError:
385-
# If the server is halfway through writing the file, we may
386-
# get invalid JSON; it should be ready next iteration.
387-
pass
388-
else:
389-
return
390-
time.sleep(0.1)
391-
print("Notebook server-info file never arrived: %s" % self.server_info_file,
392-
file=sys.stderr
393-
)
394-
395-
def _failed_to_start(self):
396-
"""Notebook server exited prematurely"""
397-
captured = self.stream_capturer.get_buffer().decode('utf-8', 'replace')
398-
print("Notebook failed to start: ", file=sys.stderr)
399-
print(self.server_command)
400-
print(captured, file=sys.stderr)
401-
402-
def _load_server_info(self):
403-
"""Notebook server started, load connection info from JSON"""
404-
with open(self.server_info_file) as f:
405-
info = json.load(f)
406-
self.server_port = info['port']
407-
408-
def cleanup(self):
409-
if hasattr(self, 'server'):
410-
try:
411-
self.server.terminate()
412-
except OSError:
413-
# already dead
414-
pass
415-
# wait 10s for the server to shutdown
416-
try:
417-
popen_wait(self.server, NOTEBOOK_SHUTDOWN_TIMEOUT)
418-
except TimeoutExpired:
419-
# server didn't terminate, kill it
420-
try:
421-
print("Failed to terminate notebook server, killing it.",
422-
file=sys.stderr
423-
)
424-
self.server.kill()
425-
except OSError:
426-
# already dead
427-
pass
428-
# wait another 10s
429-
try:
430-
popen_wait(self.server, NOTEBOOK_SHUTDOWN_TIMEOUT)
431-
except TimeoutExpired:
432-
print("Notebook server still running (%s)" % self.server_info_file,
433-
file=sys.stderr
434-
)
435-
436-
self.stream_capturer.halt()
437-
TestController.cleanup(self)
438-
439-
440250
def prepare_controllers(options):
441251
"""Returns two lists of TestController instances, those to run, and those
442252
not to run."""
443253
testgroups = options.testgroups
444-
if testgroups:
445-
if 'js' in testgroups:
446-
js_testgroups = all_js_groups()
447-
else:
448-
js_testgroups = [g for g in testgroups if g.startswith(js_prefix)]
449-
py_testgroups = [g for g in testgroups if not g.startswith('js')]
450-
else:
451-
py_testgroups = py_test_group_names
452-
if not options.all:
453-
js_testgroups = []
454-
else:
455-
js_testgroups = all_js_groups()
254+
if not testgroups:
255+
testgroups = py_test_group_names
456256

457-
engine = 'slimerjs' if options.slimerjs else 'phantomjs'
458-
c_js = [JSController(name, xunit=options.xunit, engine=engine, url=options.url) for name in js_testgroups]
459-
c_py = [PyTestController(name, options) for name in py_testgroups]
257+
controllers = [PyTestController(name, options) for name in testgroups]
460258

461-
controllers = c_py + c_js
462259
to_run = [c for c in controllers if c.will_run]
463260
not_run = [c for c in controllers if not c.will_run]
464261
return to_run, not_run
@@ -559,9 +356,6 @@ def run_iptestall(options):
559356
inc_slow : bool
560357
Include slow tests. By default, these tests aren't run.
561358
562-
slimerjs : bool
563-
Use slimerjs if it's installed instead of phantomjs for casperjs tests.
564-
565359
url : unicode
566360
Address:port to use when running the JS tests.
567361
@@ -696,8 +490,6 @@ def find_code_units(self, morfs):
696490
'all tests.')
697491
argparser.add_argument('--all', action='store_true',
698492
help='Include slow tests not run by default.')
699-
argparser.add_argument('--slimerjs', action='store_true',
700-
help="Use slimerjs if it's installed instead of phantomjs for casperjs tests.")
701493
argparser.add_argument('--url', help="URL to use for the JS tests.")
702494
argparser.add_argument('-j', '--fast', nargs='?', const=None, default=1, type=int,
703495
help='Run test sections in parallel. This starts as many '

0 commit comments

Comments
 (0)