@@ -13,6 +13,7 @@ import { IInterpreterService } from '../../../client/interpreter/contracts';
13
13
import { IExtensionTestApi } from '../../common' ;
14
14
import { initialize } from '../../initialize' ;
15
15
import { traceInfo } from '../../../client/common/logger' ;
16
+ import { spawnSync } from 'child_process' ;
16
17
17
18
/* eslint-disable @typescript-eslint/no-explicit-any, no-invalid-this */
18
19
suite ( 'DataScience - Kernels Finder' , ( ) => {
@@ -54,8 +55,21 @@ suite('DataScience - Kernels Finder', () => {
54
55
name : PYTHON_LANGUAGE
55
56
}
56
57
} ) ;
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
+ ) ;
59
73
} ) ;
60
74
test ( 'Interpreter kernel returned if kernelspec metadata not provided' , async ( ) => {
61
75
const interpreter = await interpreterService . getActiveInterpreter ( resourceToUse ) ;
@@ -66,8 +80,21 @@ suite('DataScience - Kernels Finder', () => {
66
80
name : PYTHON_LANGUAGE
67
81
}
68
82
} ) ;
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
+ ) ;
71
98
} ) ;
72
99
test ( 'Can find a Python kernel based on language' , async ( ) => {
73
100
const kernelSpec = await kernelFinder . findKernel ( resourceToUse , {
0 commit comments