Skip to content

Commit 053dfc1

Browse files
authored
Merge pull request #98 from ziadhany/gem-fix
Fix : GemVersion TypeError unhashable type: 'list'
2 parents a8ec2e7 + bf190c1 commit 053dfc1

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

src/univers/gem.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ def equal_strictly(self, other):
225225
return self.version == other.version
226226

227227
def __hash__(self):
228-
return hash(self.canonical_segments)
228+
return hash(tuple(self.canonical_segments))
229229

230230
def __eq__(self, other):
231231
return self.canonical_segments == other.canonical_segments
@@ -321,7 +321,7 @@ def get_segments(self):
321321
def canonical_segments(self):
322322
if not self._canonical_segments:
323323
self._canonical_segments = self.get_canonical_segments()
324-
return list(self._canonical_segments)
324+
return tuple(self._canonical_segments)
325325

326326
def get_canonical_segments(self):
327327
"""

tests/test_rubygems_gem_version.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,13 @@ def test_split_segments():
181181

182182

183183
def test_canonical_segments():
184-
assert GemVersion("1.0.0").canonical_segments == [1]
185-
assert GemVersion("1.0.0.a.1.0").canonical_segments == [1, "a", 1]
186-
assert GemVersion("1.2.3-1").canonical_segments == [1, 2, 3, "pre", 1]
184+
assert GemVersion("1.0.0").canonical_segments == (1,)
185+
assert GemVersion("1.0.0.a.1.0").canonical_segments == (1, "a", 1)
186+
assert GemVersion("1.2.3-1").canonical_segments == (1, 2, 3, "pre", 1)
187+
188+
189+
def test_GemVersion_is_hashable():
190+
hash(GemVersion("1.0.0"))
187191

188192

189193
def test_frozen_version():

0 commit comments

Comments
 (0)