소스 검색

wip use utils

Steven Silvester 6 년 전
부모
커밋
57f1e088ef
3개의 변경된 파일3개의 추가작업 그리고 260개의 파일을 삭제
  1. 1 0
      packages/services/package.json
  2. 2 7
      packages/services/test/src/utils.ts
  3. 0 253
      tests/utils.ts

+ 1 - 0
packages/services/package.json

@@ -54,6 +54,7 @@
     "ws": "~1.1.4"
   },
   "devDependencies": {
+    "@jupyterlab/testutils": "^0.1.0",
     "@types/expect.js": "~0.3.29",
     "@types/mocha": "~2.2.44",
     "@types/node-fetch": "~1.6.7",

+ 2 - 7
packages/services/test/src/utils.ts

@@ -27,6 +27,8 @@ import { deserialize, serialize } from '../../lib/kernel/serialize';
 
 import { Session } from '../../lib/session';
 
+export { testEmission, isFulfilled } from '@jupyterlab/testutils';
+
 // stub for node global
 declare var global: any;
 
@@ -210,13 +212,6 @@ export async function expectFailure(
   return done ? result.then(done, done) : result;
 }
 
-/**
- * Do something in the future ensuring total ordering wrt to Promises.
- */
-export function doLater(cb: () => void): void {
-  Promise.resolve().then(cb);
-}
-
 /**
  * Socket class test rig.
  */

+ 0 - 253
tests/utils.ts

@@ -1,253 +0,0 @@
-// Copyright (c) Jupyter Development Team.
-// Distributed under the terms of the Modified BSD License.
-
-// tslint:disable-next-line
-/// <reference path="./typings/json-to-html/json-to-html.d.ts"/>
-
-import json2html = require('json-to-html');
-
-import { simulate } from 'simulate-event';
-
-import { ServiceManager } from '@jupyterlab/services';
-
-import { ClientSession } from '@jupyterlab/apputils';
-
-import { nbformat } from '@jupyterlab/coreutils';
-
-import { UUID } from '@phosphor/coreutils';
-
-import {
-  TextModelFactory,
-  DocumentRegistry,
-  Context
-} from '@jupyterlab/docregistry';
-
-import { INotebookModel, NotebookModelFactory } from '@jupyterlab/notebook';
-
-import {
-  IRenderMime,
-  RenderMimeRegistry,
-  RenderedHTML,
-  standardRendererFactories
-} from '@jupyterlab/rendermime';
-
-/**
- * Return a promise that resolves in the given milliseconds with the given value.
- */
-export function sleep<T>(milliseconds: number = 0, value?: T): Promise<T> {
-  return new Promise((resolve, reject) => {
-    setTimeout(() => {
-      resolve(value);
-    }, milliseconds);
-  });
-}
-
-/**
- * Get a copy of the default rendermime instance.
- */
-export function defaultRenderMime(): RenderMimeRegistry {
-  return Private.rendermime.clone();
-}
-
-/**
- * Create a client session object.
- */
-export async function createClientSession(
-  options: Partial<ClientSession.IOptions> = {}
-): Promise<ClientSession> {
-  const manager = options.manager || Private.manager.sessions;
-
-  await manager.ready;
-  return new ClientSession({
-    manager,
-    path: options.path || UUID.uuid4(),
-    name: options.name,
-    type: options.type,
-    kernelPreference: options.kernelPreference || {
-      shouldStart: true,
-      canStart: true,
-      name: manager.specs.default
-    }
-  });
-}
-
-/**
- * Create a context for a file.
- */
-export function createFileContext(
-  path?: string,
-  manager?: ServiceManager.IManager
-): Context<DocumentRegistry.IModel> {
-  const factory = Private.textFactory;
-
-  manager = manager || Private.manager;
-  path = path || UUID.uuid4() + '.txt';
-
-  return new Context({ manager, factory, path });
-}
-
-/**
- * Create a context for a notebook.
- */
-export async function createNotebookContext(
-  path?: string,
-  manager?: ServiceManager.IManager
-): Promise<Context<INotebookModel>> {
-  const factory = Private.notebookFactory;
-
-  manager = manager || Private.manager;
-  path = path || UUID.uuid4() + '.ipynb';
-  await manager.ready;
-
-  return new Context({
-    manager,
-    factory,
-    path,
-    kernelPreference: { name: manager.specs.default }
-  });
-}
-
-/**
- * Wait for a dialog to be attached to an element.
- */
-export function waitForDialog(
-  host?: HTMLElement,
-  timeout?: number
-): Promise<void> {
-  return new Promise<void>((resolve, reject) => {
-    let counter = 0;
-    const interval = 25;
-    const limit = Math.floor((timeout || 250) / interval);
-    const seek = () => {
-      if (++counter === limit) {
-        reject(new Error('Dialog not found'));
-        return;
-      }
-
-      if ((host || document.body).getElementsByClassName('jp-Dialog')[0]) {
-        resolve(undefined);
-        return;
-      }
-
-      setTimeout(seek, interval);
-    };
-
-    seek();
-  });
-}
-
-/**
- * Accept a dialog after it is attached by accepting the default button.
- */
-export async function acceptDialog(
-  host?: HTMLElement,
-  timeout?: number
-): Promise<void> {
-  host = host || document.body;
-  await waitForDialog(host, timeout);
-
-  const node = host.getElementsByClassName('jp-Dialog')[0];
-
-  if (node) {
-    simulate(node as HTMLElement, 'keydown', { keyCode: 13 });
-  }
-}
-
-/**
- * Dismiss a dialog after it is attached.
- *
- * #### Notes
- * This promise will always resolve successfully.
- */
-export async function dismissDialog(
-  host?: HTMLElement,
-  timeout?: number
-): Promise<void> {
-  host = host || document.body;
-
-  try {
-    await waitForDialog(host, timeout);
-  } catch (error) {
-    return; // Ignore calls to dismiss the dialog if there is no dialog.
-  }
-
-  const node = host.getElementsByClassName('jp-Dialog')[0];
-
-  if (node) {
-    simulate(node as HTMLElement, 'keydown', { keyCode: 27 });
-  }
-}
-
-/**
- * A namespace for private data.
- */
-namespace Private {
-  export const manager = new ServiceManager();
-
-  export const textFactory = new TextModelFactory();
-
-  export const notebookFactory = new NotebookModelFactory({});
-
-  class JSONRenderer extends RenderedHTML {
-    mimeType = 'text/html';
-
-    renderModel(model: IRenderMime.IMimeModel): Promise<void> {
-      let source = model.data['application/json'];
-      model.setData({ data: { 'text/html': json2html(source) } });
-      return super.renderModel(model);
-    }
-  }
-
-  const jsonRendererFactory = {
-    mimeTypes: ['application/json'],
-    safe: true,
-    createRenderer(
-      options: IRenderMime.IRendererOptions
-    ): IRenderMime.IRenderer {
-      return new JSONRenderer(options);
-    }
-  };
-
-  export const rendermime = new RenderMimeRegistry({
-    initialFactories: standardRendererFactories
-  });
-  rendermime.addFactory(jsonRendererFactory, 10);
-}
-
-/**
- * The default outputs used for testing.
- */
-export const DEFAULT_OUTPUTS: nbformat.IOutput[] = [
-  {
-    name: 'stdout',
-    output_type: 'stream',
-    text: ['hello world\n', '0\n', '1\n', '2\n']
-  },
-  {
-    name: 'stderr',
-    output_type: 'stream',
-    text: ['output to stderr\n']
-  },
-  {
-    name: 'stderr',
-    output_type: 'stream',
-    text: ['output to stderr2\n']
-  },
-  {
-    output_type: 'execute_result',
-    execution_count: 1,
-    data: { 'text/plain': 'foo' },
-    metadata: {}
-  },
-  {
-    output_type: 'display_data',
-    data: { 'text/plain': 'hello, world' },
-    metadata: {}
-  },
-  {
-    output_type: 'error',
-    ename: 'foo',
-    evalue: 'bar',
-    traceback: ['fizz', 'buzz']
-  }
-];