Commit Graph

2233 Commits

Author SHA1 Message Date
Paul Ivanov
19a20a3c70 add Ctrl-M keyboard shortcut 2013-10-23 11:05:59 -07:00
Paul Ivanov
605573e110 use wait_for_output util function 2013-10-23 11:05:58 -07:00
Paul Ivanov
df2118297b wait_for_output utility function 2013-10-23 11:05:58 -07:00
Paul Ivanov
65810a49e4 utility functions + tests for shift- & ctrl-enter 2013-10-23 11:05:58 -07:00
Paul Ivanov
34c9ad36a2 repeat test with keyboard shortcut 2013-10-23 11:05:58 -07:00
Paul Ivanov
23a7eb325d make sure kernel started running 2013-10-23 11:05:58 -07:00
Paul Ivanov
fe60519410 test kernel interrupt 2013-10-23 11:05:58 -07:00
Paul Ivanov
e8fba5dd6d try to shutdown at the end of every notebook run
this line causes noise in the test suite, but if we just ignore it,
we'll never get to the bottom of it. It seems to only happen when
running 'iptest js', and *not* when running the 'casperjs test' command
directly, with a notebookserver that was launched manually.
2013-10-23 11:05:58 -07:00
Paul Ivanov
7546e57db4 make tests work on TravisCI 2013-10-23 11:05:58 -07:00
Paul Ivanov
7e7ac7ec9e don't shutdown kernel after every test 2013-10-23 11:05:58 -07:00
Paul Ivanov
ebf1320e64 use dashboard to simulate clicking new notebook 2013-10-23 11:05:58 -07:00
Paul Ivanov
c956f28894 make confusing code snippet more readable 2013-10-23 11:05:58 -07:00
Paul Ivanov
a093b4b8ff use new press_up and press_down utils functions 2013-10-23 11:05:58 -07:00
Paul Ivanov
c68eaca621 added a shorthand way to trigger keyboard events
as suggested by @ellisonbg in #4285
2013-10-23 11:05:58 -07:00
Thomas Kluyver
fc639f3d25 Separate out machinery for running JS tests 2013-10-23 11:05:58 -07:00
Thomas Kluyver
f8a36e785d Use Python 3 compatible syntax in tests 2013-10-23 11:04:56 -07:00
Paul Ivanov
6b2692aa4a eliminate hardcoded wait, now wait on outputs
Note: this test still sometimes fails, though I don't understand why.
Increasing the wait time to 30 seconds does not help, which leads me to
believe that there's some race condition, or that we're genuinely
dropping outputs sometimes (saved notebooks on these timeouts *do*
contain an In[] number, but don't have any outputs attached). @ellisonbg
and @minrk might now what's going on with that.

To run just this test, fire up a notebook server on port 8888 and run:

while true; do casperjs test --includes=util.js test_cases/execute_code_cell.js ; done
2013-10-23 11:04:56 -07:00
Paul Ivanov
f2e0315152 pep8 style function names 2013-10-23 11:04:56 -07:00
Paul Ivanov
0ea7d1e394 more informative message on server timeout 2013-10-23 11:03:12 -07:00
Paul Ivanov
3725218069 updated js tests README, --port= now optional 2013-10-23 11:03:12 -07:00
Paul Ivanov
5fbfc30a08 quieter notebook server output for js test suite 2013-10-23 11:03:12 -07:00
Paul Ivanov
3fdbeb5cae use a temporary directory for js tests 2013-10-23 11:03:12 -07:00
Paul Ivanov
c6c5066162 don't try to delete notebooks
this method wasn't currently working, and though we should put a working
method there as a utility, it isn't strictly necessary, since the whole
directory will be deleted
2013-10-23 11:03:12 -07:00
Paul Ivanov
49770da5ea --no-browser flag to js tests notebook server 2013-10-23 11:03:12 -07:00
Paul Ivanov
5f4c695aab start and use notebook server for js test suite 2013-10-23 11:03:12 -07:00
Paul Ivanov
aaae8fd200 JSController working, iptest js runs casperjs 2013-10-23 11:03:12 -07:00
Paul Ivanov
66972d69bf added javascript section with casperjs requirement 2013-10-23 11:03:11 -07:00
Paul Ivanov
8338f9ae90 simplify prepare_controllers logic 2013-10-23 11:03:11 -07:00
Paul Ivanov
641fdc77a7 include the # of active kernels in server info 2013-10-23 11:03:11 -07:00
Paul Ivanov
031811225e consistently get the first cell 2013-10-23 11:03:11 -07:00
Paul Ivanov
b75cd967d7 less convoluted way of grabbing output 2013-10-23 11:03:11 -07:00
Paul Ivanov
6d7758271e make casperjs test suite pass again 2013-10-23 11:03:11 -07:00
Paul Ivanov
928e846ea8 jstest moved to new place, closes #3125 2013-10-23 11:03:11 -07:00
David Wyde
9f4e9345a3 Add CasperJS tests for merge_cell_above() and merge_cell_below(). 2013-10-23 11:03:11 -07:00
David Wyde
dead20b1bd Use existing IPython method to kill kernels. 2013-10-23 11:03:11 -07:00
David Wyde
b566c71dfd Add tests for Markdown toolbar and menubar entries. 2013-10-23 11:03:11 -07:00
David Wyde
95873c65da Wrap CasperJS tests in a helper function to reduce boilerplate. 2013-10-23 11:03:11 -07:00
David Wyde
fce51827e0 Use keycode constants from jQuery UI and improve message in test. 2013-10-23 11:03:11 -07:00
David Wyde
6e7cd60cb5 Add a test to demonstrate errors when up/down arrow keys are
pressed in an empty notebook.
2013-10-23 11:03:11 -07:00
David Wyde
7f9aecc2d9 Add a README for CasperJS tests. 2013-10-23 11:03:11 -07:00
David Wyde
f5000f416e Add CasperJS utility functions, and tests for code and
Markdown cell execution.

Code cell test is based on https://gist.github.com/ellisonbg/3329929.
2013-10-23 11:03:11 -07:00
Thomas Kluyver
7570c8b00f Merge pull request #4426 from minrk/kernel-cwd
set kernel cwd to notebook's directory
2013-10-23 10:40:30 -07:00
MinRK
6bc2c65c83 notebooks should always have one checkpoint
closes #4396
2013-10-23 10:37:49 -07:00
MinRK
3a4d719033 fix checkpoint filename 2013-10-23 10:37:08 -07:00
Thomas Kluyver
ab357f190b Merge pull request #4393 from takluyver/tests-subproc-stream-capture
Capture output from subprocs during test, and display on failure
2013-10-23 10:28:16 -07:00
MinRK
922f458d6a set kernel cwd to notebook's directory
closes #4424
2013-10-23 10:15:55 -07:00
Matthias BUSSONNIER
d90429366b Remove tooltip on tab logic 2013-10-23 15:58:32 +02:00
MinRK
4a3978ec28 don't expose comm_id arg via new_comm 2013-10-22 20:25:04 -07:00
MinRK
b666345633 allow callbacks on status messages 2013-10-22 20:11:38 -07:00
MinRK
34efd17408 catch errors in comm callbacks 2013-10-22 19:45:39 -07:00
MinRK
938dc589dd Add CommManager.new_comm
Javascript-side version for creating and connecting Comms in one call

Without a `get_ipython()`-like global handle,
Comm constructor can't do the same magic as the IPython one.
2013-10-22 19:45:39 -07:00
MinRK
0a89edc641 log exceptions in Comm handlers 2013-10-22 19:45:38 -07:00
MinRK
8bcf95404d add unregister_target to CommManagers 2013-10-22 19:45:38 -07:00
MinRK
90f67d3bbe add CodeCell.get_callbacks
for reusing default execute callbacks
2013-10-22 19:45:36 -07:00
MinRK
9e198d2bd6 attach comm_manager to kernel 2013-10-22 19:44:46 -07:00
MinRK
5c83cd3e52 move comm.js to kernel service 2013-10-22 19:44:44 -07:00
MinRK
04adce96af add message metadata to comm and kernel.send_shell_message 2013-10-22 19:43:56 -07:00
MinRK
99680e21bd move comm.js to base 2013-10-22 19:43:56 -07:00
MinRK
4fdc4bb3fc get clear_output callback properly 2013-10-22 19:43:56 -07:00
MinRK
76994d2ff8 update callback structure in js commands 2013-10-22 19:43:55 -07:00
MinRK
aa388570d3 jshint on codecell 2013-10-22 19:43:55 -07:00
MinRK
f7e6435256 only pass shell.reply callback to oinfo / complete
These should not have side effects, so no need to expose full callback structure.

Also, object_info method shouldn't have `_request` in its name.
2013-10-22 19:43:52 -07:00
MinRK
d99e25f245 refactor js callbacks
all callbacks get the whole message
2013-10-22 19:43:01 -07:00
MinRK
9206d1e87f add utils.always_new
wrapper allows passing constructors as callbacks, where `new` is required.
2013-10-22 19:41:06 -07:00
MinRK
111fccc8ab open is not an event
target callback receives comm and open message, not just comm.
2013-10-22 19:40:36 -07:00
MinRK
aa0387a647 s/target/target_name 2013-10-22 19:40:35 -07:00
MinRK
f833b1ca03 hook up output for comm messages 2013-10-22 19:40:35 -07:00
MinRK
3d3c3fd504 COMM: mirror Python callback API in Javascript 2013-10-22 19:40:34 -07:00
MinRK
15819e8535 pass whole message to Comm handlers 2013-10-22 19:40:34 -07:00
MinRK
3665cc241f rename widget to comm 2013-10-22 19:40:34 -07:00
MinRK
14fcdab73b make js / Python widgets symmetrical
don't enforce creation on Kernel side

also removed weak refs - premature optimization,
we can think about this later.
2013-10-22 19:40:33 -07:00
MinRK
230a2261e8 fix js/Python WidgetManager symmetry
remove some log statements
2013-10-22 19:40:33 -07:00
MinRK
6643cffa23 add javascript-side widgets 2013-10-22 19:40:32 -07:00
MinRK
8199909e62 Improvements to kernel.js
- dispatch iopub handlers by msg_type
- add Kernel.send_shell_message public API
- use strict (and related fixes)
2013-10-22 19:40:32 -07:00
Min RK
bc0dc279f1 Merge pull request #4303 from ipython/multidir
Add multidirectory support for the Notebook.

Major change to URL schemes in the notebook server,
documented in [IPEP 16](https://github.com/ipython/ipython/wiki/IPEP-16%3A-Notebook-multi-directory-dashboard-and-URL-mapping).
2013-10-22 18:45:30 -07:00
MinRK
ede0297874 tweak stat walk in forbid_hidden 2013-10-22 17:41:53 -07:00
MinRK
40cce4d7e3 s/os.path.sep/os.sep/ 2013-10-22 17:36:34 -07:00
MinRK
112a694c5c py3k bytes, for crying out loud 2013-10-22 17:32:24 -07:00
MinRK
2b54e36ab7 send ignored output to devnull
rather than PIPE, since Windows pipes can fill up.
2013-10-22 17:26:39 -07:00
MinRK
dbfea55e8a stat has no st_flags on Windows (maybe elsewhere?) 2013-10-22 17:16:31 -07:00
MinRK
dfb538d881 Windows testing fixes 2013-10-22 17:16:31 -07:00
MinRK
77c1a10518 update test requirements for IPython.html 2013-10-22 16:29:59 -07:00
MinRK
1f90f4d7bb test /files/ gives 403 on hidden files 2013-10-22 15:23:46 -07:00
MinRK
2fcc7fe97f forbid serving hidden files from /files 2013-10-22 15:20:27 -07:00
Thomas Kluyver
bc16465b66 Clean up formatting sys info for test report 2013-10-22 15:17:38 -07:00
MinRK
a45e997176 don't warn when open_browser and not file_to_run 2013-10-22 09:54:28 -07:00
Paul Ivanov
8fb1d7391c added some tooltips for the File menu 2013-10-21 23:42:03 -07:00
Paul Ivanov
474bd780ce tooltips for View and Insert menus 2013-10-21 23:36:44 -07:00
Paul Ivanov
0f9a478abd Kernel and Help menu tooltips 2013-10-21 23:31:27 -07:00
Paul Ivanov
69d06c02d7 add more tooltips for Cell menu 2013-10-21 23:24:48 -07:00
Paul Ivanov
bd22e4ae90 added descriptions which were deleted from JS 2013-10-21 22:40:48 -07:00
Paul Ivanov
b117f59b82 javascript is no place to start adding title tags 2013-10-21 22:34:08 -07:00
MinRK
18022a7db8 don't relay notebook dir to kernel from command-line 2013-10-21 20:34:05 -07:00
Thomas Kluyver
d68658e3a1 Don't show subprocess output if there isn't any 2013-10-21 17:48:13 -07:00
Thomas Kluyver
4bcd7bd44d Don't try to wait for StreamCapturer that was never started 2013-10-21 17:37:34 -07:00
Paul Ivanov
8b26933af5 Merge pull request #4378 from minrk/split-below
split adds new cell above, rather than below
2013-10-21 13:52:35 -07:00
Paul Ivanov
a2d731ff39 fix 'close and halt' in notebook File menu 2013-10-20 20:57:10 -07:00
MinRK
bf58dddf26 single warning message for bad startup notebook 2013-10-20 14:13:38 -07:00
MinRK
24174f31d9 use itertools.count for incrementing notebook filename 2013-10-20 14:09:01 -07:00
MinRK
cc08837111 fix created timestamp in notebook model 2013-10-20 14:08:47 -07:00
MinRK
f894dbe664 test upload of v2 notebooks 2013-10-18 19:30:52 -07:00
MinRK
50665831bd update copy API in js 2013-10-18 17:26:14 -07:00
MinRK
cf0218e2d1 don't use jsonapi in test_notebook_api 2013-10-18 16:35:52 -07:00
MinRK
66ccce69c6 copy_from in json, not in url param 2013-10-18 16:35:03 -07:00
MinRK
ef0d065712 test nbmanager.copy_notebook 2013-10-18 16:13:54 -07:00
MinRK
c8ce1e7c7a url_escape redirects 2013-10-18 16:13:54 -07:00
MinRK
aea1bbde6a s/session_id/id 2013-10-18 16:13:53 -07:00
MinRK
0558ec4ce0 Cells shouldn't know about Sessions 2013-10-18 16:13:53 -07:00
MinRK
7ea311ad64 escape URLs in Location headers 2013-10-18 16:13:53 -07:00
MinRK
99282f9e6b urllib.quote/unquote must be str on Python 2 2013-10-18 16:13:53 -07:00
MinRK
06d9b99141 update notebook api tests
with creation URL changes

also use unicode as the default name in tests,
to increase likelihood of catching unicode bugs.
2013-10-18 16:13:53 -07:00
MinRK
f11caf25e7 update notebook creation handlers
- only POST to directories (notebook picks name)
- only PUT to full paths
- PUT and POST should be equivalent aside from
  who picks the notebook name.
2013-10-18 16:13:53 -07:00
MinRK
60d12e4209 allow specifying destination in copy_notebook 2013-10-17 19:39:06 -07:00
MinRK
d1a36fe4c0 use 'id' for checkpoint ID key
rather than redundant checkpoint.checkpoint_id
2013-10-17 14:55:00 -07:00
MinRK
5a60141bed use splitext in notebook_list
fixes case where notebooks with '.' in name were misrendered
2013-10-17 14:31:20 -07:00
MinRK
11013e648d add utils.splitext to js
mimic Python os.path.splitext
2013-10-17 14:30:15 -07:00
MinRK
5ca1ad666d add missing cell.session in tooltip.js 2013-10-17 14:09:20 -07:00
MinRK
714afa7b0f fix initial-file opening in the notebook 2013-10-17 14:09:20 -07:00
MinRK
d739a72638 strip '/' from paths in template-render handlers 2013-10-17 14:09:20 -07:00
Brian E. Granger
36aa39e3b7 Improving tests and setting of Location header. 2013-10-17 14:09:20 -07:00
Brian E. Granger
9c42ca8a72 Fully removing .py file upload.
In the future all uploads should just use the contents web service
and we should support any type of file.
2013-10-17 14:09:20 -07:00
Brian E. Granger
51fc769edd Handle notebook downloads through the /files URL. 2013-10-17 14:09:20 -07:00
Brian E. Granger
59901ce88c Adding docstring to NotebookHandler.get. 2013-10-17 14:09:19 -07:00
Thomas Kluyver
6017f5d0ef Specify encoding for loading and saving notebooks. 2013-10-17 14:09:19 -07:00
Thomas Kluyver
05e85588cf Add some unicode testing for saving notebooks 2013-10-17 14:09:19 -07:00
Thomas Kluyver
cbc141c95c Fixes for notebook checkpoint APIs 2013-10-17 14:09:19 -07:00
Thomas Kluyver
3f46a05a14 Test notebook checkpoint APIs 2013-10-17 14:09:19 -07:00
MinRK
4a12890d65 disable download-as-pt
since it doesn't work. Adds a note about nbconvert needed to bring it back.
2013-10-17 14:09:19 -07:00
Thomas Kluyver
d089f7749f Use assertEqual, not deprecated assertEquals 2013-10-17 14:09:19 -07:00
Thomas Kluyver
836ad5f388 Add tests for interrupting & restarting kernel
These are in an existing test method, as starting and stopping kernels
for individual tests is expensive.
2013-10-17 14:09:19 -07:00
Thomas Kluyver
06fa301908 Refactor tests for kernels REST API 2013-10-17 14:09:18 -07:00
MinRK
821514bd72 cleanup weird 404 2013-10-17 14:09:18 -07:00
MinRK
fc4fb92580 review pass on multidir js 2013-10-17 14:09:18 -07:00
MinRK
e16a5807c7 fixup bad rebase 2013-10-17 14:09:18 -07:00
MinRK
8b9bb04d12 review pass on Sessions API 2013-10-17 14:09:18 -07:00
Thomas Kluyver
b1a0f2e8cc 404 on attempt to list notebooks in nonexistant directory 2013-10-17 14:09:18 -07:00
Thomas Kluyver
18f88d020f Add failing test for listing nonexistant directory 2013-10-17 14:09:18 -07:00
Thomas Kluyver
99969474e0 Fix notebook manager test 2013-10-17 14:09:17 -07:00
Thomas Kluyver
c18aaefbde Fix sessionmanager test 2013-10-17 14:09:17 -07:00
Thomas Kluyver
e240f21ea1 Clean up sessions code from static analysis 2013-10-17 14:09:17 -07:00
Thomas Kluyver
693cc97905 Fix some HTTP status codes in sessions API 2013-10-17 14:09:17 -07:00
Thomas Kluyver
b3d2698c11 Fix session API tests 2013-10-17 14:09:17 -07:00
Thomas Kluyver
a02bd3d5e4 Improve Session REST API tests 2013-10-17 14:09:17 -07:00
Thomas Kluyver
a6a7255454 Fix some notebook model tests 2013-10-17 14:09:17 -07:00
MinRK
acb4245035 unicode normalization in test_notebooks_api 2013-10-17 14:09:17 -07:00
Thomas Kluyver
9f4a4ab3f8 Check Location header from renaming notebook 2013-10-17 14:09:16 -07:00
Thomas Kluyver
9144e8e57b Fix check of notebook path 2013-10-17 14:09:16 -07:00
Thomas Kluyver
eb9a55ed6b Add test for and fix REST save with rename 2013-10-17 14:09:16 -07:00
Thomas Kluyver
b9310d0e05 Add test for copying notebook through REST API 2013-10-17 14:09:16 -07:00
Thomas Kluyver
7725025d52 Add test for saving notebook via REST API 2013-10-17 14:09:16 -07:00