Skip to content

Commit 3d0e80b

Browse files
committed
Fix interpreter tests
1 parent cce419f commit 3d0e80b

File tree

1 file changed

+31
-4
lines changed

1 file changed

+31
-4
lines changed

src/test/datascience/kernel-launcher/kernelFinder.vscode.test.ts

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { IInterpreterService } from '../../../client/interpreter/contracts';
1313
import { IExtensionTestApi } from '../../common';
1414
import { initialize } from '../../initialize';
1515
import { traceInfo } from '../../../client/common/logger';
16+
import { spawnSync } from 'child_process';
1617

1718
/* eslint-disable @typescript-eslint/no-explicit-any, no-invalid-this */
1819
suite('DataScience - Kernels Finder', () => {
@@ -54,8 +55,21 @@ suite('DataScience - Kernels Finder', () => {
5455
name: PYTHON_LANGUAGE
5556
}
5657
});
57-
assert.ok(kernelSpec);
58-
assert.equal(kernelSpec?.interpreter?.path, interpreter?.path, 'No interpreter found');
58+
if (!kernelSpec?.interpreter) {
59+
throw new Error('Kernelspec & interpreter info should not be empty');
60+
}
61+
const fullyQualifiedPythonPath = spawnSync(kernelSpec.interpreter.path, [
62+
'-c',
63+
'import sys;print(sys.executable)'
64+
])
65+
.stdout.toString()
66+
.trim();
67+
68+
assert.isTrue(
69+
kernelSpec?.interpreter?.path.toLowerCase() === interpreter?.path.toLocaleLowerCase() ||
70+
fullyQualifiedPythonPath.toLowerCase() === interpreter?.path.toLocaleLowerCase(),
71+
`No interpreter found, kernelspec interpreter is ${kernelSpec?.interpreter?.path} & ${fullyQualifiedPythonPath}, but expected ${interpreter?.path}`
72+
);
5973
});
6074
test('Interpreter kernel returned if kernelspec metadata not provided', async () => {
6175
const interpreter = await interpreterService.getActiveInterpreter(resourceToUse);
@@ -66,8 +80,21 @@ suite('DataScience - Kernels Finder', () => {
6680
name: PYTHON_LANGUAGE
6781
}
6882
});
69-
assert.ok(kernelSpec);
70-
assert.equal(kernelSpec?.interpreter?.path, interpreter?.path, 'No interpreter found');
83+
if (!kernelSpec?.interpreter) {
84+
throw new Error('Kernelspec & interpreter info should not be empty');
85+
}
86+
const fullyQualifiedPythonPath = spawnSync(kernelSpec.interpreter.path, [
87+
'-c',
88+
'import sys;print(sys.executable)'
89+
])
90+
.stdout.toString()
91+
.trim();
92+
93+
assert.isTrue(
94+
kernelSpec?.interpreter?.path.toLowerCase() === interpreter?.path.toLocaleLowerCase() ||
95+
fullyQualifiedPythonPath.toLowerCase() === interpreter?.path.toLocaleLowerCase(),
96+
`No interpreter found, kernelspec interpreter is ${kernelSpec?.interpreter?.path} & ${fullyQualifiedPythonPath}, but expected ${interpreter?.path}`
97+
);
7198
});
7299
test('Can find a Python kernel based on language', async () => {
73100
const kernelSpec = await kernelFinder.findKernel(resourceToUse, {

0 commit comments

Comments
 (0)