def test_marker_properly_unsets_python_constraint() -> None: dependency = Dependency("foo", "^1.2.3") dependency.marker = 'python_version >= "3.6"' # type: ignore[assignment] assert str(dependency.python_constraint) == ">=3.6" dependency.marker = "*" # type: ignore[assignment] assert str(dependency.python_constraint) == "*"
def test_with_constraint() -> None: dependency = Dependency( "foo", "^1.2.3", optional=True, groups=["dev"], allows_prereleases=True, extras=["bar", "baz"], ) dependency.marker = parse_marker( 'python_version >= "3.6" and python_version < "4.0"') dependency.transitive_marker = parse_marker( 'python_version >= "3.7" and python_version < "4.0"') dependency.python_versions = "^3.6" dependency.transitive_python_versions = "^3.7" new = dependency.with_constraint("^1.2.6") assert new.name == dependency.name assert str(new.constraint) == ">=1.2.6,<2.0.0" assert new.is_optional() assert new.groups == frozenset(["dev"]) assert new.allows_prereleases() assert set(new.extras) == {"bar", "baz"} assert new.marker == dependency.marker assert new.transitive_marker == dependency.transitive_marker assert new.python_constraint == dependency.python_constraint assert new.transitive_python_constraint == dependency.transitive_python_constraint
def test_marker_properly_sets_python_constraint(marker: str, expected: str) -> None: dependency = Dependency("foo", "^1.2.3") dependency.marker = marker # type: ignore[assignment] assert str(dependency.python_constraint) == expected
def test_marker_properly_sets_python_constraint(): dependency = Dependency("foo", "^1.2.3") dependency.marker = 'python_version >= "3.6" and python_version < "4.0"' assert str(dependency.python_constraint) == ">=3.6,<4.0"