fix(kernel): Do not increase counter if store_history=false (#20848)

Fixes https://github.com/denoland/deno/issues/20847

Co-authored-by: Nathan Whitaker <nathan@deno.com>
This commit is contained in:
Don Jayamanne 2024-03-27 05:48:23 +11:00 committed by GitHub
parent a2a537e196
commit 9841d3fdf1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 39 additions and 1 deletions

View File

@ -160,6 +160,14 @@ impl JupyterMessage {
self.header["msg_type"].as_str().unwrap_or("")
}
pub(crate) fn store_history(&self) -> bool {
self.content["store_history"].as_bool().unwrap_or(true)
}
pub(crate) fn silent(&self) -> bool {
self.content["silent"].as_bool().unwrap_or(false)
}
pub(crate) fn code(&self) -> &str {
self.content["code"].as_str().unwrap_or("")
}

View File

@ -341,7 +341,9 @@ impl JupyterServer {
msg: JupyterMessage,
connection: &mut Connection<zeromq::RouterSocket>,
) -> Result<(), AnyError> {
self.execution_count += 1;
if !msg.silent() && msg.store_history() {
self.execution_count += 1;
}
*self.last_execution_request.borrow_mut() = Some(msg.clone());
msg

View File

@ -533,3 +533,31 @@ async fn jupyter_execute_request() -> Result<()> {
Ok(())
}
#[tokio::test]
async fn jupyter_store_history_false() -> Result<()> {
let (_ctx, client, _process) = setup().await;
client
.send(
Shell,
"execute_request",
json!({
"silent": false,
"store_history": false,
"code": "console.log(\"asdf\")"
}),
)
.await?;
let reply = client.recv(Shell).await?;
assert_eq!(reply.header.msg_type, "execute_reply");
assert_eq_subset(
reply.content,
json!({
"status": "ok",
"execution_count": 0,
}),
);
Ok(())
}