File tree Expand file tree Collapse file tree 2 files changed +19
-1
lines changed
Expand file tree Collapse file tree 2 files changed +19
-1
lines changed Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ def _comparator(operator: Comparator) -> Comparator:
4141 @wraps (operator )
4242 def wrapper (self : "Version" , other : Comparable ) -> bool :
4343 comparable_types = (
44- Version ,
44+ type ( self ) ,
4545 dict ,
4646 tuple ,
4747 list ,
Original file line number Diff line number Diff line change 11from semver import Version
2+ import pytest
23
34
45def test_subclass_from_versioninfo ():
@@ -51,3 +52,20 @@ def __str__(self) -> str:
5152 dev_version = version .replace (prerelease = "dev.0" )
5253
5354 assert str (dev_version ) == "v1.1.0-dev.0"
55+
56+
57+ def test_compare_with_subclass ():
58+ class SemVerSubclass (Version ):
59+ pass
60+
61+ with pytest .raises (TypeError ):
62+ SemVerSubclass .parse ("1.0.0" ).compare (Version .parse ("1.0.0" ))
63+ assert Version .parse ("1.0.0" ).compare (SemVerSubclass .parse ("1.0.0" )) == 0
64+
65+ assert (
66+ SemVerSubclass .parse ("1.0.0" ).__eq__ (Version .parse ("1.0.0" )) is NotImplemented
67+ )
68+ assert Version .parse ("1.0.0" ).__eq__ (SemVerSubclass .parse ("1.0.0" )) is True
69+
70+ assert SemVerSubclass .parse ("1.0.0" ) == Version .parse ("1.0.0" )
71+ assert Version .parse ("1.0.0" ) == SemVerSubclass .parse ("1.0.0" )
You can’t perform that action at this time.
0 commit comments