utils.ts 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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 DEFAULT_CONTENT_45 = NBTestUtils.DEFAULT_CONTENT_45;
  63. export const editorFactory = NBTestUtils.editorFactory;
  64. export const mimeTypeService = NBTestUtils.mimeTypeService;
  65. export const defaultEditorConfig = NBTestUtils.defaultEditorConfig;
  66. export const clipboard = NBTestUtils.clipboard;
  67. export function defaultRenderMime() {
  68. return NBTestUtils.defaultRenderMime();
  69. }
  70. /**
  71. * Create a context for a file.
  72. */
  73. export async function createMockContext(
  74. startKernel = false
  75. ): Promise<Context<INotebookModel>> {
  76. const path = UUID.uuid4() + '.txt';
  77. const manager = new Mock.ServiceManagerMock();
  78. const factory = new NotebookModelFactory({});
  79. const context = new Context({
  80. manager,
  81. factory,
  82. path,
  83. kernelPreference: {
  84. shouldStart: startKernel,
  85. canStart: startKernel,
  86. autoStartDefault: startKernel
  87. }
  88. });
  89. await context.initialize(true);
  90. await context.sessionContext.initialize();
  91. return context;
  92. }