mirror of https://github.com/renovatebot/renovate
114 lines
2.6 KiB
TypeScript
114 lines
2.6 KiB
TypeScript
import { codeBlock } from 'common-tags';
|
|
import { extractPackageFile } from '.';
|
|
|
|
describe('modules/manager/pep723/extract', () => {
|
|
describe('extractPackageFile()', () => {
|
|
it('should extract dependencies', () => {
|
|
const res = extractPackageFile(
|
|
codeBlock`
|
|
# /// script
|
|
# requires-python = ">=3.11"
|
|
# dependencies = [
|
|
# "requests==2.32.3",
|
|
# "rich>=13.8.0",
|
|
# ]
|
|
# ///
|
|
`,
|
|
'foo.py',
|
|
);
|
|
|
|
expect(res).toEqual({
|
|
deps: [
|
|
{
|
|
currentValue: '==2.32.3',
|
|
currentVersion: '2.32.3',
|
|
datasource: 'pypi',
|
|
depName: 'requests',
|
|
depType: 'project.dependencies',
|
|
packageName: 'requests',
|
|
},
|
|
{
|
|
currentValue: '>=13.8.0',
|
|
datasource: 'pypi',
|
|
depName: 'rich',
|
|
depType: 'project.dependencies',
|
|
packageName: 'rich',
|
|
},
|
|
],
|
|
extractedConstraints: { python: '>=3.11' },
|
|
});
|
|
});
|
|
|
|
it('should skip invalid dependencies', () => {
|
|
const res = extractPackageFile(
|
|
codeBlock`
|
|
# /// script
|
|
# requires-python = "==3.11"
|
|
# dependencies = [
|
|
# "requests==2.32.3",
|
|
# "==1.2.3",
|
|
# ]
|
|
# ///
|
|
`,
|
|
'foo.py',
|
|
);
|
|
|
|
expect(res).toEqual({
|
|
deps: [
|
|
{
|
|
currentValue: '==2.32.3',
|
|
currentVersion: '2.32.3',
|
|
datasource: 'pypi',
|
|
depName: 'requests',
|
|
depType: 'project.dependencies',
|
|
packageName: 'requests',
|
|
},
|
|
],
|
|
extractedConstraints: { python: '==3.11' },
|
|
});
|
|
});
|
|
|
|
it('should return null on missing dependencies', () => {
|
|
const res = extractPackageFile(
|
|
codeBlock`
|
|
# /// script
|
|
# requires-python = ">=3.11"
|
|
# ///
|
|
`,
|
|
'foo.py',
|
|
);
|
|
|
|
expect(res).toBeNull();
|
|
});
|
|
|
|
it('should return null on invalid TOML', () => {
|
|
const res = extractPackageFile(
|
|
codeBlock`
|
|
# /// script
|
|
# requires-python
|
|
# dependencies = [
|
|
# "requests==2.32.3",
|
|
# "rich>=13.8.0",
|
|
# ]
|
|
# ///
|
|
`,
|
|
'foo.py',
|
|
);
|
|
|
|
expect(res).toBeNull();
|
|
});
|
|
|
|
it('should return null if there is no PEP 723 metadata', () => {
|
|
const res = extractPackageFile(
|
|
codeBlock`
|
|
if True:
|
|
print("requires-python>=3.11")
|
|
`,
|
|
'foo.py',
|
|
);
|
|
|
|
expect(res).toBeNull();
|
|
});
|
|
});
|
|
});
|