123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- // Copyright (c) Jupyter Development Team.
- // Distributed under the terms of the Modified BSD License.
- import expect = require('expect.js');
- import {
- IKernelId, IKernel, IKernelSpecIds, ISessionId, IContentsModel,
- IKernelLanguageInfo
- } from 'jupyter-js-services';
- import {
- MockKernel
- } from 'jupyter-js-services/lib/mockkernel';
- import {
- IDisposable
- } from 'phosphor-disposable';
- import {
- ISignal, Signal
- } from 'phosphor-signaling';
- import {
- Widget
- } from 'phosphor-widget';
- import {
- IDocumentContext, IDocumentModel
- } from '../../../lib/docregistry';
- /**
- * The default kernel spec ids.
- */
- const KERNELSPECS: IKernelSpecIds = {
- default: 'python',
- kernelspecs: {
- python: {
- name: 'python',
- spec: {
- language: 'python',
- argv: [],
- display_name: 'Python',
- env: {}
- },
- resources: {}
- },
- shell: {
- name: 'shell',
- spec: {
- language: 'shell',
- argv: [],
- display_name: 'Shell',
- env: {}
- },
- resources: {}
- }
- }
- };
- /**
- * The default language infos.
- */
- const LANGUAGE_INFOS: { [key: string]: IKernelLanguageInfo } = {
- python: {
- name: 'python',
- version: '1',
- mimetype: 'text/x-python',
- file_extension: '.py',
- pygments_lexer: 'python',
- codemirror_mode: 'python',
- nbconverter_exporter: ''
- },
- shell: {
- name: 'shell',
- version: '1',
- mimetype: 'text/x-sh',
- file_extension: '.sh',
- pygments_lexer: 'shell',
- codemirror_mode: 'shell',
- nbconverter_exporter: ''
- }
- };
- export
- class MockContext implements IDocumentContext {
- constructor(model: IDocumentModel) {
- this._model = model;
- }
- get kernelChanged(): ISignal<MockContext, IKernel> {
- return Private.kernelChangedSignal.bind(this);
- }
- get pathChanged(): ISignal<MockContext, string> {
- return Private.pathChangedSignal.bind(this);
- }
- get dirtyCleared(): ISignal<MockContext, void> {
- return Private.dirtyClearedSignal.bind(this);
- }
- get id(): string {
- return '';
- }
- get model(): IDocumentModel {
- return this._model;
- }
- get kernel(): IKernel {
- return this._kernel;
- }
- get path(): string {
- return '';
- }
- get contentsModel(): IContentsModel {
- return void 0;
- }
- get kernelspecs(): IKernelSpecIds {
- return KERNELSPECS;
- }
- get isDisposed(): boolean {
- return this._model === null;
- }
- dispose(): void {
- this._model.dispose();
- this._model = null;
- }
- changeKernel(options: IKernelId): Promise<IKernel> {
- this._kernel = new MockKernel(options);
- if (options.name) {
- let name = options.name;
- if (!LANGUAGE_INFOS[name]) {
- name = KERNELSPECS['default'];
- }
- let kernel = this._kernel as MockKernel;
- kernel.setKernelSpec(KERNELSPECS.kernelspecs[name].spec);
- kernel.setKernelInfo({
- protocol_version: '1',
- implementation: 'foo',
- implementation_version: '1',
- language_info: LANGUAGE_INFOS[name],
- banner: 'Hello',
- help_links: {}
- });
- }
- this.kernelChanged.emit(this._kernel);
- return Promise.resolve(this._kernel);
- }
- save(): Promise<void> {
- return Promise.resolve(void 0);
- }
- saveAs(path: string): Promise<void> {
- return Promise.resolve(void 0);
- }
- revert(): Promise<void> {
- return Promise.resolve(void 0);
- }
- listSessions(): Promise<ISessionId[]> {
- return Promise.resolve([] as ISessionId[]);
- }
- addSibling(widget: Widget): IDisposable {
- return void 0;
- }
- private _model: IDocumentModel = null;
- private _kernel: IKernel = null;
- }
- /**
- * A namespace for private data.
- */
- namespace Private {
- /**
- * A signal emitted when the kernel changes.
- */
- export
- const kernelChangedSignal = new Signal<MockContext, IKernel>();
- /**
- * A signal emitted when the path changes.
- */
- export
- const pathChangedSignal = new Signal<MockContext, string>();
- /**
- * A signal emitted when the model is saved or reverted.
- */
- export
- const dirtyClearedSignal = new Signal<MockContext, void>();
- }
|