utils.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // Copyright (c) Jupyter Development Team.
  2. // Distributed under the terms of the Modified BSD License.
  3. import { Context } from '@jupyterlab/docregistry';
  4. import {
  5. INotebookModel,
  6. NotebookPanel,
  7. Notebook,
  8. NotebookModel,
  9. NotebookModelFactory
  10. } from '../src';
  11. import { NBTestUtils, Mock } from '@jupyterlab/testutils';
  12. import { UUID } from '@lumino/coreutils';
  13. /**
  14. * Local versions of the NBTestUtils that import from `src` instead of `lib`.
  15. */
  16. /**
  17. * Create a default notebook content factory.
  18. */
  19. export function createNotebookFactory(): Notebook.IContentFactory {
  20. return new Notebook.ContentFactory({
  21. editorFactory: NBTestUtils.editorFactory
  22. });
  23. }
  24. /**
  25. * Create a default notebook panel content factory.
  26. */
  27. export function createNotebookPanelFactory(): NotebookPanel.IContentFactory {
  28. return new NotebookPanel.ContentFactory({
  29. editorFactory: NBTestUtils.editorFactory
  30. });
  31. }
  32. /**
  33. * Create a notebook widget.
  34. */
  35. export function createNotebook(): Notebook {
  36. return new Notebook({
  37. rendermime: NBTestUtils.defaultRenderMime(),
  38. contentFactory: createNotebookFactory(),
  39. mimeTypeService: NBTestUtils.mimeTypeService
  40. });
  41. }
  42. /**
  43. * Create a notebook panel widget.
  44. */
  45. export function createNotebookPanel(
  46. context: Context<INotebookModel>
  47. ): NotebookPanel {
  48. return new NotebookPanel({
  49. content: createNotebook(),
  50. context
  51. });
  52. }
  53. /**
  54. * Populate a notebook with default content.
  55. */
  56. export function populateNotebook(notebook: Notebook): void {
  57. const model = new NotebookModel();
  58. model.fromJSON(NBTestUtils.DEFAULT_CONTENT);
  59. notebook.model = model;
  60. }
  61. export const DEFAULT_CONTENT = NBTestUtils.DEFAULT_CONTENT;
  62. export const editorFactory = NBTestUtils.editorFactory;
  63. export const mimeTypeService = NBTestUtils.mimeTypeService;
  64. export const defaultEditorConfig = NBTestUtils.defaultEditorConfig;
  65. export const clipboard = NBTestUtils.clipboard;
  66. export function defaultRenderMime() {
  67. return NBTestUtils.defaultRenderMime();
  68. }
  69. /**
  70. * Create a context for a file.
  71. */
  72. export async function createMockContext(
  73. startKernel = false
  74. ): Promise<Context<INotebookModel>> {
  75. const path = UUID.uuid4() + '.txt';
  76. const manager = new Mock.ServiceManagerMock();
  77. const factory = new NotebookModelFactory({});
  78. const context = new Context({
  79. manager,
  80. factory,
  81. path,
  82. kernelPreference: {
  83. shouldStart: startKernel,
  84. canStart: startKernel,
  85. autoStartDefault: startKernel
  86. }
  87. });
  88. await context.initialize(true);
  89. await context.sessionContext.initialize();
  90. return context;
  91. }