1
0
mirror of https://github.com/MousaZeidBaker/poetry-plugin-up.git synced 2025-10-05 21:32:40 +02:00
Files
poetry-plugin-up/tests/unit/test_unit.py
Mousa Zeid Baker 0a48f00b67 feat: initial commit
2022-12-13 12:18:52 +01:00

415 lines
9.8 KiB
Python

from poetry.core.packages.dependency import Dependency
from tomlkit import parse
from tests.helpers import TestUpCommand
def test_bump_version_in_pyproject_content(
up_cmd_tester: TestUpCommand,
) -> None:
dependencies = [
Dependency(
name="foo",
constraint="^1.0",
groups=["main"],
),
Dependency(
name="bar",
constraint="^1.0",
groups=["main"],
optional=True,
),
Dependency(
name="baz",
constraint="^1.0",
groups=["dev"],
),
]
content = parse(
"""
[tool.poetry.dependencies]
python = "^3.7"
foo = "^1.0"
bar = { version = "^1.1", optional = true }
[tool.poetry.group.dev.dependencies]
baz = "^1.2"
"""
)
for dependency in dependencies:
new_version = "^1.9"
up_cmd_tester.bump_version_in_pyproject_content(
dependency=dependency,
new_version=new_version,
pyproject_content=content,
)
poetry_content = content["tool"]["poetry"]
assert poetry_content["dependencies"]["foo"] == new_version
assert poetry_content["dependencies"]["bar"]["version"] == new_version
assert poetry_content["group"]["dev"]["dependencies"]["baz"] == new_version
def test_bump_version_in_pyproject_content_with_old_dev_dependencies(
up_cmd_tester: TestUpCommand,
) -> None:
dependencies = [
Dependency(
name="foo",
constraint="^1.0",
groups=["main"],
),
Dependency(
name="bar",
constraint="^1.0",
groups=["main"],
optional=True,
),
Dependency(
name="baz",
constraint="^1.0",
groups=["dev"],
),
]
content = parse(
"""
[tool.poetry.dependencies]
python = "^3.7"
foo = "^1.0"
bar = { version = "^1.1", optional = true }
[tool.poetry.dev-dependencies]
baz = "^1.2"
"""
)
for dependency in dependencies:
new_version = "^1.9"
up_cmd_tester.bump_version_in_pyproject_content(
dependency=dependency,
new_version=new_version,
pyproject_content=content,
)
poetry_content = content["tool"]["poetry"]
assert poetry_content["dependencies"]["foo"] == new_version
assert poetry_content["dependencies"]["bar"]["version"] == new_version
assert poetry_content["dev-dependencies"]["baz"] == new_version
def test_is_bumpable_is_false_when_source_type_is_git(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="*",
source_type="git",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_source_type_is_file(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="*",
source_type="file",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_source_type_is_directory(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="*",
source_type="directory",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_name_is_python(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(name="python", constraint="^1.2.3")
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_dependency_not_in_only_packages(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(name="foo", constraint="^1.2.3")
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=["bar"],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_version_pinned(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_version_wildcard(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="*",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_version_less_than(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="<1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_version_greater_than(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint=">1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_version_less_than_or_equal(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="<=1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_version_inequality(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="!=1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_false_when_version_multiple_requirements(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint=">=1.2.3, <2.0.0",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is False
def test_is_bumpable_is_true_when_version_caret(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="^1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_tilde(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="~1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_greater_than_or_equal(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint=">=1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_tilde_pep440(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="~=1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=False,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_pinned_and_latest(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=True,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_wildcard_and_latest(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="*",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=True,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_less_than_and_latest(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="<1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=True,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_greater_than_and_latest(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint=">1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=True,
)
assert is_bumpable is True
def test_is_bumpable_is_true_when_version_less_than_or_equal_and_latest(
up_cmd_tester: TestUpCommand,
) -> None:
dependency = Dependency(
name="foo",
constraint="<=1.2.3",
)
is_bumpable = up_cmd_tester.is_bumpable(
dependency=dependency,
only_packages=[],
latest=True,
)
assert is_bumpable is True