16 lines
1.0 KiB
JavaScript
16 lines
1.0 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { PythonBridge, manifest } from "./python-bridge.mjs";
|
|
|
|
let loadOptions = null;
|
|
const bridge = new PythonBridge({ loadPyodide: async (options) => { loadOptions = options; return { runPythonAsync: async (source) => source.length }; } });
|
|
assert.equal((await bridge.initialize()).status, "verified");
|
|
assert.equal(loadOptions.indexURL, manifest.index_url);
|
|
assert.equal(bridge.importModule("linuxcnc").status, "verified");
|
|
assert.equal(bridge.importModule("os").code, "python_unsupported_module");
|
|
assert.equal(bridge.checkCapability("subprocess").status, "REAL-EXCLUDED");
|
|
assert.equal(bridge.invoke("hal", "pin", ["demo.pin"]).status, "verified");
|
|
assert.equal((await bridge.execute("1 + 1")).value, 5);
|
|
assert.equal((await bridge.execute("import subprocess")).status, "REAL-EXCLUDED");
|
|
assert.equal(bridge.restoreState(bridge.exportState()).status, "verified");
|
|
console.log(`python_bridge=passed calls=${bridge.state.calls.length} errors=${bridge.state.errors.length} hash=${bridge.hash()}`);
|