1+ import assert from 'node:assert' ;
2+ import path from 'node:path' ;
3+ import { getLatest } from '../../../managers/common/utils' ;
4+ import { createMockPythonEnvironment } from '../../mocks/pythonEnvironment' ;
5+
6+ suite ( 'getLatest' , ( ) => {
7+ test ( 'selects the latest normalized Python version' , ( ) => {
8+ const systemPython = createMockPythonEnvironment ( {
9+ envPath : path . join ( 'usr' , 'bin' , 'python3' ) ,
10+ version : '3.9.6.final.0' ,
11+ } ) ;
12+ const homebrewPython = createMockPythonEnvironment ( {
13+ envPath : path . join ( 'opt' , 'homebrew' , 'bin' , 'python3' ) ,
14+ version : '3.14.3.final.0' ,
15+ } ) ;
16+
17+ assert . strictEqual ( getLatest ( [ systemPython , homebrewPython ] ) , homebrewPython ) ;
18+ } ) ;
19+
20+ test ( 'prefers a comparable version when the first version is invalid' , ( ) => {
21+ const invalid = createMockPythonEnvironment ( { envPath : path . join ( 'invalid' , 'python' ) , version : 'unknown' } ) ;
22+ const valid = createMockPythonEnvironment ( { envPath : path . join ( 'valid' , 'python' ) , version : '3.14.3' } ) ;
23+
24+ assert . strictEqual ( getLatest ( [ invalid , valid ] ) , valid ) ;
25+ } ) ;
26+
27+ test ( 'excludes errored environments when a usable environment exists' , ( ) => {
28+ const older = createMockPythonEnvironment ( { envPath : path . join ( 'older' , 'python' ) , version : '3.9.6' } ) ;
29+ const errored = {
30+ ...createMockPythonEnvironment ( { envPath : path . join ( 'errored' , 'python' ) , version : '3.14.3' } ) ,
31+ error : 'Broken interpreter' ,
32+ } ;
33+
34+ assert . strictEqual ( getLatest ( [ older , errored ] ) , older ) ;
35+ } ) ;
36+ } ) ;
0 commit comments