Add tests.
This commit is contained in:
parent
e80f511155
commit
a7d4bc4ae9
10 changed files with 915 additions and 418 deletions
104
tests/test_version.py
Normal file
104
tests/test_version.py
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
"""Tests for version parsing and normalization functions."""
|
||||
|
||||
import pytest
|
||||
|
||||
from debian_todo import (
|
||||
parse_details,
|
||||
is_prerelease_version,
|
||||
normalize_upstream_version,
|
||||
)
|
||||
|
||||
|
||||
class TestParseDetails:
|
||||
"""Tests for parse_details function."""
|
||||
|
||||
def test_with_current_version(self):
|
||||
details = "1.2.3 (currently in unstable: 1.2.2-1)"
|
||||
new, current = parse_details(details)
|
||||
assert new == "1.2.3"
|
||||
assert current == "1.2.2-1"
|
||||
|
||||
def test_without_current_version(self):
|
||||
details = "1.2.3"
|
||||
new, current = parse_details(details)
|
||||
assert new == "1.2.3"
|
||||
assert current is None
|
||||
|
||||
def test_with_epoch_in_current(self):
|
||||
details = "2.0.0 (currently in unstable: 1:1.9.0-2)"
|
||||
new, current = parse_details(details)
|
||||
assert new == "2.0.0"
|
||||
assert current == "1:1.9.0-2"
|
||||
|
||||
def test_strips_whitespace(self):
|
||||
details = " 1.2.3 (currently in unstable: 1.2.2-1 ) "
|
||||
new, current = parse_details(details)
|
||||
assert new == "1.2.3"
|
||||
assert current == "1.2.2-1"
|
||||
|
||||
def test_empty_string(self):
|
||||
new, current = parse_details("")
|
||||
assert new == ""
|
||||
assert current is None
|
||||
|
||||
|
||||
class TestIsPrereleaseVersion:
|
||||
"""Tests for is_prerelease_version function."""
|
||||
|
||||
def test_alpha_version(self):
|
||||
assert is_prerelease_version("1.0.0alpha1") is True
|
||||
assert is_prerelease_version("1.0.0-alpha2") is True
|
||||
assert is_prerelease_version("1.0.0.alpha") is True
|
||||
|
||||
def test_beta_version(self):
|
||||
assert is_prerelease_version("1.0.0beta1") is True
|
||||
assert is_prerelease_version("1.0.0-beta2") is True
|
||||
assert is_prerelease_version("2.0b1") is True
|
||||
|
||||
def test_rc_version(self):
|
||||
assert is_prerelease_version("1.0.0rc1") is True
|
||||
assert is_prerelease_version("1.0.0-rc2") is True
|
||||
assert is_prerelease_version("1.0.0.rc3") is True
|
||||
|
||||
def test_short_prerelease(self):
|
||||
assert is_prerelease_version("1.0a1") is True
|
||||
assert is_prerelease_version("1.0b2") is True
|
||||
|
||||
def test_stable_version(self):
|
||||
assert is_prerelease_version("1.0.0") is False
|
||||
assert is_prerelease_version("2.3.4") is False
|
||||
assert is_prerelease_version("1.0.0-1") is False
|
||||
|
||||
def test_version_with_current(self):
|
||||
assert is_prerelease_version("1.0.0rc1 (currently in unstable: 0.9.0-1)") is True
|
||||
assert is_prerelease_version("1.0.0 (currently in unstable: 0.9.0-1)") is False
|
||||
|
||||
def test_case_insensitive(self):
|
||||
assert is_prerelease_version("1.0.0Alpha1") is True
|
||||
assert is_prerelease_version("1.0.0BETA1") is True
|
||||
assert is_prerelease_version("1.0.0RC1") is True
|
||||
|
||||
|
||||
class TestNormalizeUpstreamVersion:
|
||||
"""Tests for normalize_upstream_version function."""
|
||||
|
||||
def test_simple_version(self):
|
||||
assert normalize_upstream_version("1.2.3") == "1.2.3"
|
||||
|
||||
def test_strips_debian_revision(self):
|
||||
assert normalize_upstream_version("1.2.3-1") == "1.2.3"
|
||||
assert normalize_upstream_version("1.2.3-2ubuntu1") == "1.2.3"
|
||||
|
||||
def test_strips_epoch(self):
|
||||
assert normalize_upstream_version("1:1.2.3") == "1.2.3"
|
||||
assert normalize_upstream_version("2:1.2.3") == "1.2.3"
|
||||
|
||||
def test_strips_epoch_and_revision(self):
|
||||
assert normalize_upstream_version("1:1.2.3-4") == "1.2.3"
|
||||
|
||||
def test_strips_whitespace(self):
|
||||
assert normalize_upstream_version(" 1.2.3 ") == "1.2.3"
|
||||
|
||||
def test_version_with_hyphen_in_upstream(self):
|
||||
# Only the last hyphen is treated as revision separator
|
||||
assert normalize_upstream_version("1.2.3-beta-1") == "1.2.3-beta"
|
||||
Loading…
Add table
Add a link
Reference in a new issue