Skip to content

Commit

Permalink
more tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Christopher Doris committed May 11, 2024
1 parent 7ce9d72 commit 245250f
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/juliapkg/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class Compat:
"""A Julia compat specifier."""

def __init__(self, clauses=[]):
self.clauses = list(clauses)
self.clauses = [clause for clause in clauses if not clause.is_empty()]

def __str__(self):
return ', '.join(str(clause) for clause in self.clauses)
Expand Down
55 changes: 55 additions & 0 deletions test/test_compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,58 @@ def test_is_empty(self, range, expected_output):
def test_and(self, range1, range2, expected_output):
output = range1 & range2
assert output == expected_output


class TestCompat:
@pytest.mark.parametrize("input, expected_output", [
("", Compat([])),
("1.2.3", Compat([Range("1.2.3", "2.0.0")])),
("1, 2.3, 4.5.6", Compat([Range("1.0.0", "2.0.0"), Range("2.3.0", "3.0.0"), Range("4.5.6", "5.0.0")])),
])
def test_parse(self, input, expected_output):
output = Compat.parse(input)
assert output == expected_output

@pytest.mark.parametrize("compat, expected_output", [
(Compat([]), ""),
(Compat([Range("1.2.3", "2.0.0")]), "^1.2.3"),
(Compat([Range("1.0.0", "2.0.0"), Range("2.3.0", "3.0.0"), Range("4.5.6", "5.0.0")]), "^1, ^2.3, ^4.5.6"),
])
def test_str(self, compat, expected_output):
output = str(compat)
assert output == expected_output

@pytest.mark.parametrize("version, compat, expected_output", [
(version, compat, expected_output)
for (compat, pairs) in [
(Compat([Range("1.0.0", "2.0.0"), Range("2.3.0", "3.0.0"), Range("4.5.6", "5.0.0")]), [
(Version("0.0.0"), False),
(Version("0.0.1"), False),
(Version("0.1.0"), False),
(Version("1.0.0"), True),
(Version("1.2.0"), True),
(Version("1.2.3"), True),
(Version("2.0.0"), False),
(Version("2.1.0"), False),
(Version("2.3.0"), True),
(Version("2.3.4"), True),
(Version("2.4.5"), True),
(Version("3.0.0"), False),
])
]
for (version, expected_output) in pairs
])
def test_contains(self, version, compat, expected_output):
output = version in compat
assert output == expected_output

@pytest.mark.parametrize("compat1, compat2, expected_output", [
(
Compat([Range("1.0.0", "2.0.0"), Range("2.3.0", "3.0.0"), Range("4.5.6", "5.0.0")]),
Compat([Range("0.1.0", "2.5.0"), Range("3.0.0", "5.0.0"), Range("6.0.0", "7.0.0")]),
Compat([Range("1.0.0", "2.0.0"), Range("2.3.0", "2.5.0"), Range("4.5.6", "5.0.0")]),
)
])
def test_and(self, compat1, compat2, expected_output):
output = compat1 & compat2
assert output == expected_output

0 comments on commit 245250f

Please sign in to comment.