diff options
author | Kyle Kelley <rgbkrk@gmail.com> | 2024-05-21 13:35:21 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-21 22:35:21 +0200 |
commit | 8698e80304815353ec52be1b16f96483ebe559a0 (patch) | |
tree | 9abd53d5b656cd8cc0c1aa3940684f3ce1d9c8ef /tests | |
parent | cc8c0609ebec9f101a1739a0c42c91718ca2abba (diff) |
refactor(jupyter): use runtimelib for Jupyter structures and directory paths (#23826)
This brings in [`runtimelib`](https://github.com/runtimed/runtimed) to
use:
## Fully typed structs for Jupyter Messages
```rust
let msg = connection.read().await?;
self
.send_iopub(
runtimelib::Status::busy().as_child_of(msg),
)
.await?;
```
## Jupyter paths
Jupyter paths are implemented in Rust, allowing the Deno kernel to be
installed completely via Deno without a requirement on Python or
Jupyter. Deno users will be able to install and use the kernel with just
VS Code or other editors that support Jupyter.
```rust
pub fn status() -> Result<(), AnyError> {
let user_data_dir = user_data_dir()?;
let kernel_spec_dir_path = user_data_dir.join("kernels").join("deno");
let kernel_spec_path = kernel_spec_dir_path.join("kernel.json");
if kernel_spec_path.exists() {
log::info!("â
Deno kernel already installed");
Ok(())
} else {
log::warn!("âšī¸ Deno kernel is not yet installed, run `deno jupyter --install` to set it up");
Ok(())
}
}
```
Closes https://github.com/denoland/deno/issues/21619
Diffstat (limited to 'tests')
-rw-r--r-- | tests/integration/jupyter_tests.rs | 10 | ||||
-rw-r--r-- | tests/specs/jupyter/install_command/__test__.jsonc (renamed from tests/specs/jupyter/install_command_not_exists/__test__.jsonc) | 4 | ||||
-rw-r--r-- | tests/specs/jupyter/install_command/install_command.out | 2 | ||||
-rw-r--r-- | tests/specs/jupyter/install_command_not_exists/install_command_not_exists.out | 5 |
4 files changed, 10 insertions, 11 deletions
diff --git a/tests/integration/jupyter_tests.rs b/tests/integration/jupyter_tests.rs index 3c4efbdac..c7b2712e8 100644 --- a/tests/integration/jupyter_tests.rs +++ b/tests/integration/jupyter_tests.rs @@ -10,6 +10,8 @@ use test_util::DenoChild; use test_util::TestContext; use test_util::TestContextBuilder; +use chrono::DateTime; +use chrono::Utc; use deno_core::anyhow::Result; use deno_core::serde_json; use deno_core::serde_json::json; @@ -119,7 +121,7 @@ impl Default for JupyterMsg { struct MsgHeader { msg_id: Uuid, session: Uuid, - date: String, + date: DateTime<Utc>, username: String, msg_type: String, version: String, @@ -136,7 +138,7 @@ impl Default for MsgHeader { Self { msg_id: Uuid::new_v4(), session: Uuid::new_v4(), - date: utc_now().to_rfc3339(), + date: utc_now(), username: "test".into(), msg_type: "kernel_info_request".into(), version: "5.3".into(), @@ -517,7 +519,7 @@ async fn jupyter_kernel_info() -> Result<()> { "mimetype": "text/x.typescript", "file_extension": ".ts", "pygments_lexer": "typescript", - "nb_converter": "script" + "nbconvert_exporter": "script" }, }), ); @@ -612,7 +614,7 @@ async fn jupyter_store_history_false() -> Result<()> { json!({ "silent": false, "store_history": false, - "code": "console.log(\"asdf\")" + "code": "console.log(\"asdf\")", }), ) .await?; diff --git a/tests/specs/jupyter/install_command_not_exists/__test__.jsonc b/tests/specs/jupyter/install_command/__test__.jsonc index 9552157bd..df60c3b86 100644 --- a/tests/specs/jupyter/install_command_not_exists/__test__.jsonc +++ b/tests/specs/jupyter/install_command/__test__.jsonc @@ -1,8 +1,8 @@ { "args": "jupyter --install", - "output": "install_command_not_exists.out", + "output": "install_command.out", "envs": { "PATH": "" }, - "exitCode": 1 + "exitCode": 0 } diff --git a/tests/specs/jupyter/install_command/install_command.out b/tests/specs/jupyter/install_command/install_command.out new file mode 100644 index 000000000..62875d9cf --- /dev/null +++ b/tests/specs/jupyter/install_command/install_command.out @@ -0,0 +1,2 @@ +Warning "deno jupyter" is unstable and might change in the future. +â
Deno kernelspec installed successfully. diff --git a/tests/specs/jupyter/install_command_not_exists/install_command_not_exists.out b/tests/specs/jupyter/install_command_not_exists/install_command_not_exists.out deleted file mode 100644 index 1bb176e20..000000000 --- a/tests/specs/jupyter/install_command_not_exists/install_command_not_exists.out +++ /dev/null @@ -1,5 +0,0 @@ -Warning "deno jupyter" is unstable and might change in the future. -error: Failed to spawn 'jupyter' command. Is JupyterLab installed (https://jupyter.org/install) and available on the PATH? - -Caused by: -[WILDCARD] |