def add_to_repo(repository, name, version, deps=None, python=None): package = Package(name, version) if python: package.python_versions = python if deps: for dep_name, dep_constraint in deps.items(): package.add_dependency(dep_name, dep_constraint) repository.add_package(package)
def test_package_add_dependency_vcs_category_default_main(f): package = Package("foo", "0.1.0") dependency = package.add_dependency( f.create_dependency( "poetry", {"git": "https://github.com/python-poetry/poetry.git"})) assert dependency.category == "main"
def test_package_add_dependency_vcs_category(category): package = Package("foo", "0.1.0") dependency = package.add_dependency( "poetry", constraint={"git": "https://github.com/python-poetry/poetry.git"}, category=category, ) assert dependency.category == category
def test_package_url_category_optional(category, optional): package = Package("foo", "0.1.0") dependency = package.add_dependency( "poetry", constraint={ "url": "https://github.com/python-poetry/poetry/releases/download/1.0.5/poetry-1.0.5-linux.tar.gz", "optional": optional, }, category=category, ) assert dependency.category == category assert dependency.is_optional() == optional
import pytest from poetry.core.packages import Package from poetry.factory import Factory from poetry.utils.extras import get_extra_package_names _PACKAGE_FOO = Package("foo", "0.1.0") _PACKAGE_SPAM = Package("spam", "0.2.0") _PACKAGE_BAR = Package("bar", "0.3.0") _PACKAGE_BAR.add_dependency(Factory.create_dependency("foo", "*")) # recursive dependency _PACKAGE_BAZ = Package("baz", "0.4.0") _PACKAGE_BAZ.add_dependency(Factory.create_dependency("quix", "*")) _PACKAGE_QUIX = Package("quix", "0.5.0") _PACKAGE_QUIX.add_dependency(Factory.create_dependency("baz", "*")) @pytest.mark.parametrize( "packages,extras,extra_names,expected_extra_package_names", [ # Empty edge case ([], {}, [], []), # Selecting no extras is fine ([_PACKAGE_FOO], {}, [], []), # An empty extras group should return an empty list ([_PACKAGE_FOO], {"group0": []}, ["group0"], []), # Selecting an extras group should return the contained packages ( [_PACKAGE_FOO, _PACKAGE_SPAM, _PACKAGE_BAR],
import pytest from poetry.core.packages import Package from poetry.utils.extras import get_extra_package_names _PACKAGE_FOO = Package("foo", "0.1.0") _PACKAGE_SPAM = Package("spam", "0.2.0") _PACKAGE_BAR = Package("bar", "0.3.0") _PACKAGE_BAR.add_dependency("foo") # recursive dependency _PACKAGE_BAZ = Package("baz", "0.4.0") _PACKAGE_BAZ.add_dependency("quix") _PACKAGE_QUIX = Package("quix", "0.5.0") _PACKAGE_QUIX.add_dependency("baz") @pytest.mark.parametrize( "packages,extras,extra_names,expected_extra_package_names", [ # Empty edge case ([], {}, [], []), # Selecting no extras is fine ([_PACKAGE_FOO], {}, [], []), # An empty extras group should return an empty list ([_PACKAGE_FOO], { "group0": [] }, ["group0"], []), # Selecting an extras group should return the contained packages ( [_PACKAGE_FOO, _PACKAGE_SPAM, _PACKAGE_BAR],
import pytest from poetry.core.packages import Package from poetry.utils.extras import get_extra_package_names _PACKAGE_FOO = Package("foo", "0.1.0") _PACKAGE_SPAM = Package("spam", "0.2.0") _PACKAGE_BAR = Package("bar", "0.3.0") _PACKAGE_BAR.add_dependency("foo") @pytest.mark.parametrize( "packages,extras,extra_names,expected_extra_package_names", [ # Empty edge case ([], {}, [], []), # Selecting no extras is fine ([_PACKAGE_FOO], {}, [], []), # An empty extras group should return an empty list ([_PACKAGE_FOO], { "group0": [] }, ["group0"], []), # Selecting an extras group should return the contained packages ( [_PACKAGE_FOO, _PACKAGE_SPAM, _PACKAGE_BAR], { "group0": ["foo"] }, ["group0"], ["foo"], ),