UNPKG

arepl-backend

Version:

JS interface to python evaluator for AREPL

71 lines 2.66 kB
"use strict"; /*global suite, test*/ //comment for eslint Object.defineProperty(exports, "__esModule", { value: true }); // This test uses TDD Mocha. see https://mochajs.org/ for help // http://ricostacruz.com/cheatsheets/mocha-tdd // The module 'assert' provides assertion methods from node const assert = require("assert"); const pythonExecutors_1 = require("./pythonExecutors"); suite("PythonExecutors", () => { let pyExecutors = new pythonExecutors_1.PythonExecutors(); let input = { evalCode: "", filePath: "", usePreviousVariables: false, show_global_vars: true, default_filter_vars: [], default_filter_types: ["<class 'module'>", "<class 'function'>"] }; const pythonStartupTime = 3000; const num_executors = 2; suiteSetup(function () { this.timeout(pythonStartupTime + 500); }); setup(function (done) { pyExecutors.onPrint = () => { }; pyExecutors.onStderr = () => { }; pyExecutors.onResult = () => { }; pyExecutors.start(num_executors); done(); }); teardown(function () { pyExecutors.stop(true); }); test("can do multiple executions", function (done) { // we do three test runs because given that only two executors exist: // if first fails: something is wrong with first executor // if second fails: something is wrong with second executor // if thid fails: logic that waits for a executor to become free is broken let num_results = 0; pyExecutors.onResult = (result) => { num_results += 1; if (num_results == 1) { assert.strictEqual(result.userVariables['x'], 1); input.evalCode = "x=2"; pyExecutors.execCode(input); } else if (num_results == 2) { assert.strictEqual(result.userVariables['x'], 2); input.evalCode = "x=3"; pyExecutors.execCode(input); } else if (num_results > num_executors) { assert.strictEqual(result.userVariables['x'], 3); done(); } }; input.evalCode = "x=1"; pyExecutors.execCode(input); }); test("last execution takes precedence", function (done) { pyExecutors.onResult = (result) => { assert.strictEqual(result.userVariables['x'], 2); done(); }; input.evalCode = "x=1"; pyExecutors.execCode(input); input.evalCode = "x=2"; pyExecutors.execCode(input); }); }); //# sourceMappingURL=pythonExecutors.test.js.map