UNPKG

@covage/semantic-release-poetry-plugin

Version:

A semantic-release plugin for bumping version of Poetry projects.

79 lines (70 loc) 2.67 kB
const poetryReplace = require('../src/poetry_version_replace'); describe('poetry version replace', () => { test('replace simple TOML 1', async () => { const content = [ `[tool.poetry]`, `version = "0.1.0"`, ].join('\n') const res = poetryReplace.replaceTomlToolPoetryVersion(content, "1.0.0") expect(res.split('\n')[1]).toBe(`version = "1.0.0"`) expect(res.split('\n').length).toBe(2) }); test('replace simple TOML 2', async () => { const content = [ `[tool.poetry]`, `name = "my_lib"`, `version = "42.0.0"`, `description = "Lib to do thing"` ].join('\n') const res = poetryReplace.replaceTomlToolPoetryVersion(content, "43.2.3") expect(res.split('\n')[2]).toBe(`version = "43.2.3"`) }); test('replace in full TOML', async () => { const content = [ `[tool.poetry]`, `name = "my_lib"`, `version = "42.0.0"`, `description = "Lib to do thing"`, `authors = ["John Doe <john@example.org"]`, `keywords = []`, `license = "MIT"`, `readme = "README.md"`, ``, `[tool.poetry.dependencies]`, `python = "^3.12"`, `pydantic = "^2.9.2"`, ``, `[tool.poetry.group.dev.dependencies]`, `ruff = "0.6.8"`, ``, `[build-system]`, `requires = ["poetry-core"]`, `build-backend = "poetry.core.masonry.api"`, ``, `[tool.ruff]`, `line-length = 100`, `indent-width = 4` ].join('\n') const res = poetryReplace.replaceTomlToolPoetryVersion(content, "43.9.9") expect(res.split('\n')[2]).toBe(`version = "43.9.9"`) }); test('replace with absent tool.poetry section', async () => { const content = [ `name = "my_lib"`, `description = "Lib to do thing"` ].join('\n') expect( () => poetryReplace.replaceTomlToolPoetryVersion(content, "43.2.3") ).toThrow(Error("Could not find [tool.poetry] section in pyproject.toml")) }); test('replace with absent tool.poetry.version field', async () => { const content = [ `[tool.poetry]`, `name = "my_lib"`, `description = "Lib to do thing"` ].join('\n') expect( () => poetryReplace.replaceTomlToolPoetryVersion(content, "43.2.3") ).toThrow(Error("Could not find tool.poetry.version key in pyproject.toml")) }); });