MCPcopy Create free account
hub / github.com/deepnote/vscode-deepnote / preSwitch

Function preSwitch

src/test/datascience/interactiveWindow.vscode.test.ts:74–112  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

72 await closeNotebooksAndCleanUpAfterTests(disposables);
73 });
74 async function preSwitch() {
75 const pythonApi = await pythonApiProvider.getNewApi();
76 await pythonApi?.environments.refreshEnvironments({ forceRefresh: true });
77 const interpreterService = api.serviceContainer.get<IInterpreterService>(IInterpreterService);
78 await waitForCondition(
79 () => {
80 const venvNoKernelInterpreter = getCachedEnvironments().find((i) =>
81 getFilePath(i.executable.uri).includes('.venvnokernel')
82 );
83 const venvKernelInterpreter = getCachedEnvironments().find((i) =>
84 getFilePath(i.executable.uri).includes('.venvkernel')
85 );
86 return venvNoKernelInterpreter && venvKernelInterpreter ? true : false;
87 },
88 defaultNotebookTestTimeout,
89 'Waiting for interpreters to be discovered'
90 );
91 const venvNoKernelInterpreter = getCachedEnvironments().find((i) =>
92 getFilePath(i.executable.uri).includes('.venvnokernel')
93 );
94 const venvKernelInterpreter = getCachedEnvironments().find((i) =>
95 getFilePath(i.executable.uri).includes('.venvkernel')
96 );
97
98 if (!venvNoKernelInterpreter || !venvKernelInterpreter) {
99 throw new Error(
100 `Unable to find matching kernels. List of kernels is ${getCachedEnvironments()
101 .map((i) => getFilePath(i.executable.uri))
102 .join('\n')}`
103 );
104 }
105 venNoKernelPath = venvNoKernelInterpreter.executable.uri!;
106 venvKernelPath = venvKernelInterpreter.executable.uri!;
107 originalActiveInterpreter = await interpreterService.getActiveInterpreter();
108
109 // No kernel should not have ipykernel in it yet, but we need two, so install it.
110 await installIPyKernel(venNoKernelPath.fsPath);
111 assert.ok(originalActiveInterpreter, `No active interpreter when running switch test`);
112 }
113 async function postSwitch() {
114 await uninstallIPyKernel(venNoKernelPath.fsPath);
115 await setActiveInterpreter(pythonApiProvider, undefined, originalActiveInterpreter?.uri);

Calls 10

getCachedEnvironmentsFunction · 0.90
getFilePathFunction · 0.90
installIPyKernelFunction · 0.90
refreshEnvironmentsMethod · 0.80
joinMethod · 0.80
mapMethod · 0.80
getNewApiMethod · 0.65
getMethod · 0.65
getActiveInterpreterMethod · 0.65
waitForConditionFunction · 0.50

Tested by

no test coverage detected