mirror of
https://github.com/renovatebot/renovate.git
synced 2025-03-14 16:23:00 +00:00
89 lines
3.3 KiB
JavaScript
89 lines
3.3 KiB
JavaScript
const fs = require('fs');
|
|
const { extractPackageFile } = require('../../../lib/manager/poetry/extract');
|
|
|
|
const pyproject1toml = fs.readFileSync(
|
|
'test/manager/poetry/_fixtures/pyproject.1.toml',
|
|
'utf8'
|
|
);
|
|
|
|
const pyproject2toml = fs.readFileSync(
|
|
'test/manager/poetry/_fixtures/pyproject.2.toml',
|
|
'utf8'
|
|
);
|
|
|
|
const pyproject3toml = fs.readFileSync(
|
|
'test/manager/poetry/_fixtures/pyproject.3.toml',
|
|
'utf8'
|
|
);
|
|
|
|
const pyproject4toml = fs.readFileSync(
|
|
'test/manager/poetry/_fixtures/pyproject.4.toml',
|
|
'utf8'
|
|
);
|
|
|
|
describe('lib/manager/poetry/extract', () => {
|
|
describe('extractPackageFile()', () => {
|
|
let config;
|
|
beforeEach(() => {
|
|
config = {};
|
|
});
|
|
it('returns null for empty', () => {
|
|
expect(extractPackageFile('nothing here', config)).toBeNull();
|
|
});
|
|
it('extracts multiple dependencies', () => {
|
|
const res = extractPackageFile(pyproject1toml, config);
|
|
expect(res.deps).toMatchSnapshot();
|
|
expect(res.deps).toHaveLength(9);
|
|
});
|
|
it('extracts multiple dependencies (with dep = {version = "1.2.3"} case)', () => {
|
|
const res = extractPackageFile(pyproject2toml, config);
|
|
expect(res.deps).toMatchSnapshot();
|
|
expect(res.deps).toHaveLength(7);
|
|
});
|
|
it('handles case with no dependencies', () => {
|
|
const res = extractPackageFile(pyproject3toml, config);
|
|
expect(res).toBeNull();
|
|
});
|
|
it('handles multiple constraint dependencies', () => {
|
|
const res = extractPackageFile(pyproject4toml, config);
|
|
expect(res.deps).toMatchSnapshot();
|
|
expect(res.deps).toHaveLength(1);
|
|
});
|
|
it('skips git dependencies', () => {
|
|
const content =
|
|
'[tool.poetry.dependencies]\r\nflask = {git = "https://github.com/pallets/flask.git"}\r\nwerkzeug = ">=0.14"';
|
|
const res = extractPackageFile(content, config).deps;
|
|
expect(res[0].depName).toBe('flask');
|
|
expect(res[0].currentValue).toBe('');
|
|
expect(res[0].skipReason).toBe('git-dependency');
|
|
expect(res).toHaveLength(2);
|
|
});
|
|
it('skips git dependencies', () => {
|
|
const content =
|
|
'[tool.poetry.dependencies]\r\nflask = {git = "https://github.com/pallets/flask.git", version="1.2.3"}\r\nwerkzeug = ">=0.14"';
|
|
const res = extractPackageFile(content, config).deps;
|
|
expect(res[0].depName).toBe('flask');
|
|
expect(res[0].currentValue).toBe('1.2.3');
|
|
expect(res[0].skipReason).toBe('git-dependency');
|
|
expect(res).toHaveLength(2);
|
|
});
|
|
it('skips path dependencies', () => {
|
|
const content =
|
|
'[tool.poetry.dependencies]\r\nflask = {path = "/some/path/"}\r\nwerkzeug = ">=0.14"';
|
|
const res = extractPackageFile(content, config).deps;
|
|
expect(res[0].depName).toBe('flask');
|
|
expect(res[0].currentValue).toBe('');
|
|
expect(res[0].skipReason).toBe('path-dependency');
|
|
expect(res).toHaveLength(2);
|
|
});
|
|
it('skips path dependencies', () => {
|
|
const content =
|
|
'[tool.poetry.dependencies]\r\nflask = {path = "/some/path/", version = "1.2.3"}\r\nwerkzeug = ">=0.14"';
|
|
const res = extractPackageFile(content, config).deps;
|
|
expect(res[0].depName).toBe('flask');
|
|
expect(res[0].currentValue).toBe('1.2.3');
|
|
expect(res[0].skipReason).toBe('path-dependency');
|
|
expect(res).toHaveLength(2);
|
|
});
|
|
});
|
|
});
|