File tree 2 files changed +19
-1
lines changed
Filter options
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:
41
41
@wraps (operator )
42
42
def wrapper (self : "Version" , other : Comparable ) -> bool :
43
43
comparable_types = (
44
- Version ,
44
+ type ( self ) ,
45
45
dict ,
46
46
tuple ,
47
47
list ,
Original file line number Diff line number Diff line change 1
1
from semver import Version
2
+ import pytest
2
3
3
4
4
5
def test_subclass_from_versioninfo ():
@@ -51,3 +52,20 @@ def __str__(self) -> str:
51
52
dev_version = version .replace (prerelease = "dev.0" )
52
53
53
54
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