UNPKG

@nteract/fs-kernels

Version:

A manager for the filesystem aspects of Juyter kernels

45 lines (42 loc) 1.5 kB
import { Status } from "pidusage"; import { Kernel, launchKernel } from "../src/kernel"; jest.unmock("process"); describe.skip("Kernel", () => { it("can launch a kernel given a name", async done => { const kernel = await launchKernel("python3"); expect(kernel.process).toBeDefined(); await kernel.shutdown(); done(); }); it("can shutdown a kernel", async done => { const kernel = await launchKernel("python3"); const originalKill = process.kill; process.kill = jest.fn(); expect(kernel.process).toBeDefined(); await kernel.shutdown(500); expect(process.kill).toBeCalledWith(kernel.process.pid); expect(process.kill).toBeCalledTimes(1); process.kill = originalKill; await kernel.shutdown(500); done(); }); it("creates a valid shutdown epic", async done => { const originalKill = process.kill; process.kill = jest.fn(pid => {}); const kernel = await launchKernel("python3"); const shutdown$ = await kernel.shutdownEpic().toPromise(); expect(shutdown$.subscribe).toBeTruthy(); expect(shutdown$.value).toHaveProperty("status"); process.kill = originalKill; kernel.process.kill(); done(); }); it("can get usage metrics on a kernel", async done => { const kernel: Kernel = await launchKernel("python3"); const stats: Status = await kernel.getUsage(); expect(stats.memory).toBeDefined(); expect(stats.pid).toEqual(kernel.process.pid); await kernel.shutdown(); done(); }); });