add tests for requires and conflicts
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
This commit is contained in:
parent
cdec51f22f
commit
194ee2ce13
1 changed files with 224 additions and 5 deletions
229
test.py
229
test.py
|
@ -42,13 +42,19 @@ def run(*params):
|
||||||
return out.split("\n")[:-1]
|
return out.split("\n")[:-1]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("toml,expected", [
|
@pytest.mark.parametrize("toml, provides, requires, conflicts", [
|
||||||
|
|
||||||
|
# Basic provides
|
||||||
("""
|
("""
|
||||||
[package]
|
[package]
|
||||||
name = "hello"
|
name = "hello"
|
||||||
version = "0.0.0"
|
version = "0.0.0"
|
||||||
""",
|
""",
|
||||||
["crate(hello) = 0.0.0"]),
|
["crate(hello) = 0.0.0"],
|
||||||
|
[],
|
||||||
|
[]),
|
||||||
|
|
||||||
|
# Basic provides for feature
|
||||||
("""
|
("""
|
||||||
[package]
|
[package]
|
||||||
name = "hello"
|
name = "hello"
|
||||||
|
@ -58,7 +64,220 @@ def run(*params):
|
||||||
color = []
|
color = []
|
||||||
""",
|
""",
|
||||||
["crate(hello) = 1.2.3",
|
["crate(hello) = 1.2.3",
|
||||||
"crate(hello/color) = 1.2.3"]),
|
"crate(hello/color) = 1.2.3"],
|
||||||
|
[],
|
||||||
|
[]),
|
||||||
|
|
||||||
|
# Caret requirements
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "^0"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 0.0.0"],
|
||||||
|
["crate(libc) >= 1.0.0"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "^0.0"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 0.0.0"],
|
||||||
|
["crate(libc) >= 0.1.0"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "^0.0.3"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 0.0.3"],
|
||||||
|
["crate(libc) >= 0.0.4"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "^0.2.3"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 0.2.3"],
|
||||||
|
["crate(libc) >= 0.3.0"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "^1"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.0.0"],
|
||||||
|
["crate(libc) >= 2.0.0"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "^1.2"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.2.0"],
|
||||||
|
["crate(libc) >= 2.0.0"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "^1.2.3"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.2.3"],
|
||||||
|
["crate(libc) >= 2.0.0"]),
|
||||||
|
|
||||||
|
# Tilde requirements
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "~1"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.0.0"],
|
||||||
|
["crate(libc) >= 2.0.0"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "~1.2"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.2.0"],
|
||||||
|
["crate(libc) >= 1.3.0"]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "~1.2.3"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.2.3"],
|
||||||
|
["crate(libc) >= 1.3.0"]),
|
||||||
|
|
||||||
|
# Wildcard requirements
|
||||||
|
pytest.mark.xfail(("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "*"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 0.0.0"],
|
||||||
|
[])),
|
||||||
|
pytest.mark.xfail(("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "1.*"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.0.0"],
|
||||||
|
["crate(libc) >= 2.0.0"])),
|
||||||
|
pytest.mark.xfail(("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "1.2.*"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.2.0"],
|
||||||
|
["crate(libc) >= 1.3.0"])),
|
||||||
|
|
||||||
|
# Inequality requirements
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = ">= 1.2.0"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.2.0"],
|
||||||
|
[]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "> 1"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) > 1"],
|
||||||
|
[]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "< 2"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) < 2"],
|
||||||
|
[]),
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = "= 1.2.3"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) = 1.2.3"],
|
||||||
|
[]),
|
||||||
|
|
||||||
|
# Multiple requirements
|
||||||
|
("""
|
||||||
|
[package]
|
||||||
|
name = "hello"
|
||||||
|
version = "0.0.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
libc = ">= 1.2, < 1.5"
|
||||||
|
""",
|
||||||
|
["crate(hello) = 0.0.0"],
|
||||||
|
["crate(libc) >= 1.2"],
|
||||||
|
["crate(libc) >= 1.5"]),
|
||||||
|
|
||||||
])
|
])
|
||||||
def test_provides(toml, expected, cargo_toml):
|
def test_depgen(toml, provides, requires, conflicts, cargo_toml):
|
||||||
assert run("--provides", cargo_toml(toml)) == expected
|
assert run("--provides", cargo_toml(toml)) == provides
|
||||||
|
assert run("--requires", cargo_toml(toml)) == requires
|
||||||
|
assert run("--conflicts", cargo_toml(toml)) == conflicts
|
||||||
|
|
Loading…
Reference in a new issue