Show More
The requested changes are too big and content was truncated. Show full diff
@@ -2,36 +2,16 b'' | |||||
2 | language: python |
|
2 | language: python | |
3 | python: |
|
3 | python: | |
4 | - 3.4 |
|
4 | - 3.4 | |
|
5 | - 3.3 | |||
5 | - 2.7 |
|
6 | - 2.7 | |
6 | sudo: false |
|
7 | sudo: false | |
7 | env: |
|
|||
8 | global: |
|
|||
9 | - PATH=$TRAVIS_BUILD_DIR/pandoc:$PATH |
|
|||
10 | matrix: |
|
|||
11 | - GROUP= |
|
|||
12 | - GROUP=js/base |
|
|||
13 | - GROUP=js/notebook |
|
|||
14 | - GROUP=js/services |
|
|||
15 | - GROUP=js/tree |
|
|||
16 | - GROUP=js/widgets |
|
|||
17 | before_install: |
|
8 | before_install: | |
18 | - 'if [[ $GROUP != js* ]]; then wget https://7de4dfdec62155b49b44-d726a73613a1989d29b147f20996e7c1.ssl.cf2.rackcdn.com/pandoc-1.12.3-linux-debian-x86_64.zip && unzip pandoc-1.12.3-linux-debian-x86_64.zip; fi' |
|
|||
19 | - 'if [[ $GROUP == js* ]]; then wget https://7de4dfdec62155b49b44-d726a73613a1989d29b147f20996e7c1.ssl.cf2.rackcdn.com/mathjax.zip; fi' |
|
|||
20 | - 'if [[ $GROUP == js* ]]; then npm install -g casperjs; fi' |
|
|||
21 | - git clone --quiet --depth 1 https://github.com/minrk/travis-wheels travis-wheels |
|
9 | - git clone --quiet --depth 1 https://github.com/minrk/travis-wheels travis-wheels | |
22 |
- 'if [[ $GROUP != js* ]]; then COVERAGE=" |
|
10 | - 'if [[ $GROUP != js* ]]; then COVERAGE=""; fi' | |
23 | install: |
|
11 | install: | |
24 |
- pip install -f travis-wheels/wheelhouse -r requirements.txt -e file://$PWD#egg=ipython[test |
|
12 | - pip install -f travis-wheels/wheelhouse -r requirements.txt -e file://$PWD#egg=ipython[test] coveralls | |
25 | before_script: |
|
|||
26 | - 'if [[ $GROUP == js* ]]; then python -m IPython.external.mathjax mathjax.zip; fi' |
|
|||
27 | script: |
|
13 | script: | |
28 |
- cd /tmp && iptest |
|
14 | - cd /tmp && iptest --coverage xml && cd - | |
29 |
|
||||
30 | matrix: |
|
|||
31 | include: |
|
|||
32 | - python: 3.3 |
|
|||
33 | env: GROUP= |
|
|||
34 |
|
||||
35 | after_success: |
|
15 | after_success: | |
36 | - cp /tmp/ipy_coverage.xml ./ |
|
16 | - cp /tmp/ipy_coverage.xml ./ | |
37 | - cp /tmp/.coverage ./ |
|
17 | - cp /tmp/.coverage ./ |
@@ -141,7 +141,10 b' class ProfileDir(LoggingConfigurable):' | |||||
141 | self._mkdir(self.static_dir) |
|
141 | self._mkdir(self.static_dir) | |
142 | custom = os.path.join(self.static_dir, 'custom') |
|
142 | custom = os.path.join(self.static_dir, 'custom') | |
143 | self._mkdir(custom) |
|
143 | self._mkdir(custom) | |
144 | from IPython.html import DEFAULT_STATIC_FILES_PATH |
|
144 | try: | |
|
145 | from jupyter_notebook import DEFAULT_STATIC_FILES_PATH | |||
|
146 | except ImportError: | |||
|
147 | return | |||
145 | for fname in ('custom.js', 'custom.css'): |
|
148 | for fname in ('custom.js', 'custom.css'): | |
146 | src = os.path.join(DEFAULT_STATIC_FILES_PATH, 'custom', fname) |
|
149 | src = os.path.join(DEFAULT_STATIC_FILES_PATH, 'custom', fname) | |
147 | dest = os.path.join(custom, fname) |
|
150 | dest = os.path.join(custom, fname) |
@@ -50,11 +50,8 b' def test_image_filename_defaults():' | |||||
50 | embed=True) |
|
50 | embed=True) | |
51 | nt.assert_raises(ValueError, display.Image) |
|
51 | nt.assert_raises(ValueError, display.Image) | |
52 | nt.assert_raises(ValueError, display.Image, data='this is not an image', format='badformat', embed=True) |
|
52 | nt.assert_raises(ValueError, display.Image, data='this is not an image', format='badformat', embed=True) | |
53 | from IPython.html import DEFAULT_STATIC_FILES_PATH |
|
|||
54 | # check boths paths to allow packages to test at build and install time |
|
53 | # check boths paths to allow packages to test at build and install time | |
55 |
imgfile = os.path.join(tpath, ' |
|
54 | imgfile = os.path.join(tpath, 'core/tests/2x2.png') | |
56 | if not os.path.exists(imgfile): |
|
|||
57 | imgfile = os.path.join(DEFAULT_STATIC_FILES_PATH, 'base/images/logo.png') |
|
|||
58 | img = display.Image(filename=imgfile) |
|
55 | img = display.Image(filename=imgfile) | |
59 | nt.assert_equal('png', img.format) |
|
56 | nt.assert_equal('png', img.format) | |
60 | nt.assert_is_not_none(img._repr_png_()) |
|
57 | nt.assert_is_not_none(img._repr_png_()) |
@@ -619,18 +619,16 b' def test_extension():' | |||||
619 | tmpdir.cleanup() |
|
619 | tmpdir.cleanup() | |
620 |
|
620 | |||
621 |
|
621 | |||
622 | # The nose skip decorator doesn't work on classes, so this uses unittest's skipIf |
|
622 | @dec.skip_without('jupyter_nbformat') | |
623 | @skipIf(dec.module_not_available('IPython.nbformat'), 'nbformat not importable') |
|
623 | def test_notebook_export_json(): | |
624 | class NotebookExportMagicTests(TestCase): |
|
624 | _ip = get_ipython() | |
625 | def test_notebook_export_json(self): |
|
625 | _ip.history_manager.reset() # Clear any existing history. | |
626 | _ip = get_ipython() |
|
626 | cmds = [u"a=1", u"def b():\n return a**2", u"print('noël, été', b())"] | |
627 | _ip.history_manager.reset() # Clear any existing history. |
|
627 | for i, cmd in enumerate(cmds, start=1): | |
628 | cmds = [u"a=1", u"def b():\n return a**2", u"print('noël, été', b())"] |
|
628 | _ip.history_manager.store_inputs(i, cmd) | |
629 | for i, cmd in enumerate(cmds, start=1): |
|
629 | with TemporaryDirectory() as td: | |
630 | _ip.history_manager.store_inputs(i, cmd) |
|
630 | outfile = os.path.join(td, "nb.ipynb") | |
631 | with TemporaryDirectory() as td: |
|
631 | _ip.magic("notebook -e %s" % outfile) | |
632 | outfile = os.path.join(td, "nb.ipynb") |
|
|||
633 | _ip.magic("notebook -e %s" % outfile) |
|
|||
634 |
|
632 | |||
635 |
|
633 | |||
636 | class TestEnv(TestCase): |
|
634 | class TestEnv(TestCase): |
@@ -375,10 +375,10 b' tclass.py: deleting object: C-third' | |||||
375 | with tt.AssertNotPrints('SystemExit'): |
|
375 | with tt.AssertNotPrints('SystemExit'): | |
376 | _ip.magic('run -e %s' % self.fname) |
|
376 | _ip.magic('run -e %s' % self.fname) | |
377 |
|
377 | |||
378 |
@dec.skip_without(' |
|
378 | @dec.skip_without('jupyter_nbformat') # Requires jsonschema | |
379 | def test_run_nb(self): |
|
379 | def test_run_nb(self): | |
380 | """Test %run notebook.ipynb""" |
|
380 | """Test %run notebook.ipynb""" | |
381 |
from |
|
381 | from jupyter_nbformat import v4, writes | |
382 | nb = v4.new_notebook( |
|
382 | nb = v4.new_notebook( | |
383 | cells=[ |
|
383 | cells=[ | |
384 | v4.new_markdown_cell("The Ultimate Question of Everything"), |
|
384 | v4.new_markdown_cell("The Ultimate Question of Everything"), |
@@ -25,6 +25,6 b' def test_locate_help():' | |||||
25 | def test_locate_profile_help(): |
|
25 | def test_locate_profile_help(): | |
26 | tt.help_all_output_test("locate profile") |
|
26 | tt.help_all_output_test("locate profile") | |
27 |
|
27 | |||
28 |
@skip_without(' |
|
28 | @skip_without('jupyter_nbformat') # Requires jsonschema to be installed | |
29 | def test_trust_help(): |
|
29 | def test_trust_help(): | |
30 | tt.help_all_output_test("trust") |
|
30 | tt.help_all_output_test("trust") |
@@ -34,7 +34,6 b' from nose.core import TestProgram' | |||||
34 | from nose.plugins import Plugin |
|
34 | from nose.plugins import Plugin | |
35 | from nose.util import safe_str |
|
35 | from nose.util import safe_str | |
36 |
|
36 | |||
37 | from IPython.utils.process import is_cmd_found |
|
|||
38 | from IPython.utils.py3compat import bytes_to_str |
|
37 | from IPython.utils.py3compat import bytes_to_str | |
39 | from IPython.utils.importstring import import_item |
|
38 | from IPython.utils.importstring import import_item | |
40 | from IPython.testing.plugin.ipdoctest import IPythonDoctest |
|
39 | from IPython.testing.plugin.ipdoctest import IPythonDoctest | |
@@ -118,27 +117,9 b' def test_for(item, min_version=None, callback=extract_version):' | |||||
118 | # have available at test run time |
|
117 | # have available at test run time | |
119 | have = {} |
|
118 | have = {} | |
120 |
|
119 | |||
121 | have['curses'] = test_for('_curses') |
|
|||
122 | have['matplotlib'] = test_for('matplotlib') |
|
120 | have['matplotlib'] = test_for('matplotlib') | |
123 | have['numpy'] = test_for('numpy') |
|
|||
124 | have['pexpect'] = test_for('pexpect') |
|
|||
125 | have['pymongo'] = test_for('pymongo') |
|
|||
126 | have['pygments'] = test_for('pygments') |
|
121 | have['pygments'] = test_for('pygments') | |
127 | have['sqlite3'] = test_for('sqlite3') |
|
122 | have['sqlite3'] = test_for('sqlite3') | |
128 | have['tornado'] = test_for('tornado.version_info', (4,0), callback=None) |
|
|||
129 | have['jinja2'] = test_for('jinja2') |
|
|||
130 | have['mistune'] = test_for('mistune') |
|
|||
131 | have['requests'] = test_for('requests') |
|
|||
132 | have['sphinx'] = test_for('sphinx') |
|
|||
133 | have['jsonschema'] = test_for('jsonschema') |
|
|||
134 | 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') |
|
|||
138 |
|
||||
139 | min_zmq = (13,) |
|
|||
140 |
|
||||
141 | have['zmq'] = test_for('zmq.pyzmq_version_info', min_zmq, callback=lambda x: x()) |
|
|||
142 |
|
123 | |||
143 | #----------------------------------------------------------------------------- |
|
124 | #----------------------------------------------------------------------------- | |
144 | # Test suite definitions |
|
125 | # Test suite definitions | |
@@ -146,7 +127,6 b" have['zmq'] = test_for('zmq.pyzmq_version_info', min_zmq, callback=lambda x: x()" | |||||
146 |
|
127 | |||
147 | test_group_names = ['core', |
|
128 | test_group_names = ['core', | |
148 | 'extensions', 'lib', 'terminal', 'testing', 'utils', |
|
129 | 'extensions', 'lib', 'terminal', 'testing', 'utils', | |
149 | 'html', |
|
|||
150 | ] |
|
130 | ] | |
151 |
|
131 | |||
152 | class TestSection(object): |
|
132 | class TestSection(object): | |
@@ -169,12 +149,8 b' class TestSection(object):' | |||||
169 | def will_run(self): |
|
149 | def will_run(self): | |
170 | return self.enabled and all(have[p] for p in self.dependencies) |
|
150 | return self.enabled and all(have[p] for p in self.dependencies) | |
171 |
|
151 | |||
172 | shims = { |
|
|||
173 | 'html': 'jupyter_notebook', |
|
|||
174 | } |
|
|||
175 |
|
||||
176 | # Name -> (include, exclude, dependencies_met) |
|
152 | # Name -> (include, exclude, dependencies_met) | |
177 |
test_sections = {n:TestSection(n, [ |
|
153 | test_sections = {n:TestSection(n, ['IPython.%s' % n]) for n in test_group_names} | |
178 |
|
154 | |||
179 |
|
155 | |||
180 | # Exclusions and dependencies |
|
156 | # Exclusions and dependencies | |
@@ -191,8 +167,7 b" if not have['matplotlib']:" | |||||
191 |
|
167 | |||
192 | # lib: |
|
168 | # lib: | |
193 | sec = test_sections['lib'] |
|
169 | sec = test_sections['lib'] | |
194 | if not have['zmq']: |
|
170 | sec.exclude('kernel') | |
195 | sec.exclude('kernel') |
|
|||
196 | if not have['pygments']: |
|
171 | if not have['pygments']: | |
197 | sec.exclude('tests.test_lexers') |
|
172 | sec.exclude('tests.test_lexers') | |
198 | # We do this unconditionally, so that the test suite doesn't import |
|
173 | # We do this unconditionally, so that the test suite doesn't import | |
@@ -228,20 +203,6 b" test_sections['autoreload'] = TestSection('autoreload'," | |||||
228 | ['IPython.extensions.autoreload', 'IPython.extensions.tests.test_autoreload']) |
|
203 | ['IPython.extensions.autoreload', 'IPython.extensions.tests.test_autoreload']) | |
229 | test_group_names.append('autoreload') |
|
204 | test_group_names.append('autoreload') | |
230 |
|
205 | |||
231 | # html: |
|
|||
232 | sec = test_sections['html'] |
|
|||
233 | sec.requires('zmq', 'tornado', 'requests', 'sqlite3', 'jsonschema') |
|
|||
234 | # The notebook 'static' directory contains JS, css and other |
|
|||
235 | # files for web serving. Occasionally projects may put a .py |
|
|||
236 | # file in there (MathJax ships a conf.py), so we might as |
|
|||
237 | # well play it safe and skip the whole thing. |
|
|||
238 | sec.exclude('static') |
|
|||
239 | sec.exclude('tasks') |
|
|||
240 | if not have['jinja2']: |
|
|||
241 | sec.exclude('notebookapp') |
|
|||
242 | if not have['terminado']: |
|
|||
243 | sec.exclude('terminal') |
|
|||
244 |
|
||||
245 |
|
206 | |||
246 | #----------------------------------------------------------------------------- |
|
207 | #----------------------------------------------------------------------------- | |
247 | # Functions and classes |
|
208 | # Functions and classes |
@@ -247,218 +247,15 b' class PyTestController(TestController):' | |||||
247 | super(PyTestController, self).launch(buffer_output=buffer_output) |
|
247 | super(PyTestController, self).launch(buffer_output=buffer_output) | |
248 |
|
248 | |||
249 |
|
249 | |||
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 |
|
||||
440 | def prepare_controllers(options): |
|
250 | def prepare_controllers(options): | |
441 | """Returns two lists of TestController instances, those to run, and those |
|
251 | """Returns two lists of TestController instances, those to run, and those | |
442 | not to run.""" |
|
252 | not to run.""" | |
443 | testgroups = options.testgroups |
|
253 | testgroups = options.testgroups | |
444 | if testgroups: |
|
254 | if not testgroups: | |
445 | if 'js' in testgroups: |
|
255 | testgroups = py_test_group_names | |
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() |
|
|||
456 |
|
256 | |||
457 | engine = 'slimerjs' if options.slimerjs else 'phantomjs' |
|
257 | controllers = [PyTestController(name, options) for name in testgroups] | |
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] |
|
|||
460 |
|
258 | |||
461 | controllers = c_py + c_js |
|
|||
462 | to_run = [c for c in controllers if c.will_run] |
|
259 | to_run = [c for c in controllers if c.will_run] | |
463 | not_run = [c for c in controllers if not c.will_run] |
|
260 | not_run = [c for c in controllers if not c.will_run] | |
464 | return to_run, not_run |
|
261 | return to_run, not_run | |
@@ -559,9 +356,6 b' def run_iptestall(options):' | |||||
559 | inc_slow : bool |
|
356 | inc_slow : bool | |
560 | Include slow tests. By default, these tests aren't run. |
|
357 | Include slow tests. By default, these tests aren't run. | |
561 |
|
358 | |||
562 | slimerjs : bool |
|
|||
563 | Use slimerjs if it's installed instead of phantomjs for casperjs tests. |
|
|||
564 |
|
||||
565 | url : unicode |
|
359 | url : unicode | |
566 | Address:port to use when running the JS tests. |
|
360 | Address:port to use when running the JS tests. | |
567 |
|
361 | |||
@@ -696,8 +490,6 b" argparser.add_argument('testgroups', nargs='*'," | |||||
696 | 'all tests.') |
|
490 | 'all tests.') | |
697 | argparser.add_argument('--all', action='store_true', |
|
491 | argparser.add_argument('--all', action='store_true', | |
698 | help='Include slow tests not run by default.') |
|
492 | 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.") |
|
|||
701 | argparser.add_argument('--url', help="URL to use for the JS tests.") |
|
493 | argparser.add_argument('--url', help="URL to use for the JS tests.") | |
702 | argparser.add_argument('-j', '--fast', nargs='?', const=None, default=1, type=int, |
|
494 | argparser.add_argument('-j', '--fast', nargs='?', const=None, default=1, type=int, | |
703 | help='Run test sections in parallel. This starts as many ' |
|
495 | help='Run test sections in parallel. This starts as many ' |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: modified file |
|
NO CONTENT: modified file | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (528 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (1152 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (694 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (530 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed, binary diff hidden |
|
NO CONTENT: file was removed, binary diff hidden |
1 | NO CONTENT: file was removed, binary diff hidden |
|
NO CONTENT: file was removed, binary diff hidden |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (888 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (536 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
This diff has been collapsed as it changes many lines, (711 lines changed) Show them Hide them |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed, binary diff hidden |
|
NO CONTENT: file was removed, binary diff hidden |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed | ||
The requested commit or file is too big and content was truncated. Show full diff |
General Comments 0
You need to be logged in to leave comments.
Login now