mirror of
				https://gitea.com/actions/setup-python.git
				synced 2025-11-04 13:48:55 +08:00 
			
		
		
		
	
		
			
	
	
		
			44 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import {desugarVersion, pythonVersionToSemantic} from '../src/find-python';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								describe('desugarVersion', () => {
							 | 
						||
| 
								 | 
							
								  it.each([
							 | 
						||
| 
								 | 
							
								    ['3.13', {version: '3.13', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.13t', {version: '3.13', freethreaded: true}],
							 | 
						||
| 
								 | 
							
								    ['3.13.1', {version: '3.13.1', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.13.1t', {version: '3.13.1', freethreaded: true}],
							 | 
						||
| 
								 | 
							
								    ['3.14-dev', {version: '~3.14.0-0', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.14t-dev', {version: '~3.14.0-0', freethreaded: true}]
							 | 
						||
| 
								 | 
							
								  ])('%s -> %s', (input, expected) => {
							 | 
						||
| 
								 | 
							
								    expect(desugarVersion(input)).toEqual(expected);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Test the combined desugarVersion and pythonVersionToSemantic functions
							 | 
						||
| 
								 | 
							
								describe('pythonVersions', () => {
							 | 
						||
| 
								 | 
							
								  it.each([
							 | 
						||
| 
								 | 
							
								    ['3.13', {version: '3.13', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.13t', {version: '3.13', freethreaded: true}],
							 | 
						||
| 
								 | 
							
								    ['3.13.1', {version: '3.13.1', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.13.1t', {version: '3.13.1', freethreaded: true}],
							 | 
						||
| 
								 | 
							
								    ['3.14-dev', {version: '~3.14.0-0', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.14t-dev', {version: '~3.14.0-0', freethreaded: true}]
							 | 
						||
| 
								 | 
							
								  ])('%s -> %s', (input, expected) => {
							 | 
						||
| 
								 | 
							
								    const {version, freethreaded} = desugarVersion(input);
							 | 
						||
| 
								 | 
							
								    const semanticVersionSpec = pythonVersionToSemantic(version, false);
							 | 
						||
| 
								 | 
							
								    expect({version: semanticVersionSpec, freethreaded}).toEqual(expected);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  it.each([
							 | 
						||
| 
								 | 
							
								    ['3.13', {version: '~3.13.0-0', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.13t', {version: '~3.13.0-0', freethreaded: true}],
							 | 
						||
| 
								 | 
							
								    ['3.13.1', {version: '3.13.1', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.13.1t', {version: '3.13.1', freethreaded: true}],
							 | 
						||
| 
								 | 
							
								    ['3.14-dev', {version: '~3.14.0-0', freethreaded: false}],
							 | 
						||
| 
								 | 
							
								    ['3.14t-dev', {version: '~3.14.0-0', freethreaded: true}]
							 | 
						||
| 
								 | 
							
								  ])('%s (allowPreReleases=true) -> %s', (input, expected) => {
							 | 
						||
| 
								 | 
							
								    const {version, freethreaded} = desugarVersion(input);
							 | 
						||
| 
								 | 
							
								    const semanticVersionSpec = pythonVersionToSemantic(version, true);
							 | 
						||
| 
								 | 
							
								    expect({version: semanticVersionSpec, freethreaded}).toEqual(expected);
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								});
							 |