From 66ba3a15336b7a1ed7884a97cec8e63202491605 Mon Sep 17 00:00:00 2001 From: Karol Werner Date: Sun, 24 Mar 2019 15:31:32 +0100 Subject: [PATCH] Fixes #109 and add iterator to VersionInfo * Add Karl to CONTRIBUTORS * Use version fixture in test function test_version_info_should_be_iterable based on the work of Karol Werner in PR #109 --- CONTRIBUTORS | 2 +- semver.py | 6 ++++++ test_semver.py | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index ce0b166c..205de33a 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -29,7 +29,7 @@ Significant contributors * Craig Blaszczyk * Jan Pieter Waagmeester * Jelo Agnasin -* Karol Werner +* Karol Werner * Peter Bittner * robi-wan * T. Jameson Little diff --git a/semver.py b/semver.py index 4475a767..5f9a938c 100644 --- a/semver.py +++ b/semver.py @@ -155,6 +155,12 @@ def _asdict(self): ("build", self.build) )) + def __iter__(self): + """Implement iter(self).""" + # As long as we support Py2.7, we can't use the "yield from" syntax + for v in self._astuple(): + yield v + @comparator def __eq__(self, other): return _compare_by_keys(self._asdict(), _to_dict(other)) == 0 diff --git a/test_semver.py b/test_semver.py index 13a0d716..5e8aae5b 100644 --- a/test_semver.py +++ b/test_semver.py @@ -452,3 +452,8 @@ def test_immutable_unknown_attribute(version): # "no new attribute can be set" with pytest.raises(AttributeError): version.new_attribute = 'forbidden' + + +def test_version_info_should_be_iterable(version): + assert tuple(version) == (version.major, version.minor, version.patch, + version.prerelease, version.build)