Hello community,

here is the log from the commit of package python-node-semver for 
openSUSE:Leap:15.2 checked in at 2020-03-09 18:09:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-node-semver (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.python-node-semver.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-node-semver"

Mon Mar  9 18:09:19 2020 rev:15 rq:776847 version:0.7.0

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/python-node-semver/python-node-semver.changes  
2020-01-15 15:50:48.151507083 +0100
+++ 
/work/SRC/openSUSE:Leap:15.2/.python-node-semver.new.26092/python-node-semver.changes
       2020-03-09 18:09:19.613021246 +0100
@@ -1,0 +2,28 @@
+Thu Oct  3 10:27:14 UTC 2019 - John Vandenberg <[email protected]>
+
+- Add Conflicts: python-semver
+
+-------------------------------------------------------------------
+Tue Aug 13 14:41:23 UTC 2019 - Martin Pluskal <[email protected]>
+
+- Update to version 0.7.0:
+  * Include tests in source distributions
+
+-------------------------------------------------------------------
+Thu Jan 10 13:48:13 UTC 2019 - Martin Pluskal <[email protected]>
+
+- Update to version 0.6.0:
+  * more strict error handling (InvalidTypeIncluded is added)
+- Changes for version 0.5.1:
+  * bug fix
+- Changes for version 0.5.0:
+  * include_prerelease option is added
+
+-------------------------------------------------------------------
+Thu Oct 11 13:33:36 UTC 2018 - Martin Pluskal <[email protected]>
+
+- Update to version 0.4.2:
+  * fix bug for support 4-digit (handling prelease and build)
+  * suport 4-digit version (e.g. x.y.z.a)
+
+-------------------------------------------------------------------

Old:
----
  python-node-semver-0.3.0.tar.gz

New:
----
  python-node-semver-0.7.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-node-semver.spec ++++++
--- /var/tmp/diff_new_pack.z2hUA7/_old  2020-03-09 18:09:19.897021653 +0100
+++ /var/tmp/diff_new_pack.z2hUA7/_new  2020-03-09 18:09:19.897021653 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-node-semver
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,14 +12,14 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
 %define skip_python2 1
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-node-semver
-Version:        0.3.0
+Version:        0.7.0
 Release:        0
 Summary:        Port of node-semver
 License:        MIT
@@ -31,6 +31,8 @@
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
+# See https://github.com/k-bx/python-semver/issues/67 for why conflicts is 
needed
+Conflicts:      python-semver
 BuildArch:      noarch
 %python_subpackages
 
@@ -51,7 +53,8 @@
 %python_exec setup.py test
 
 %files %{python_files}
-%doc LICENSE README.rst
+%license LICENSE
+%doc README.rst
 %{python_sitelib}/*
 
 %changelog

++++++ python-node-semver-0.3.0.tar.gz -> python-node-semver-0.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/.eggs/README.txt 
new/python-semver-0.7.0/.eggs/README.txt
--- old/python-semver-0.3.0/.eggs/README.txt    2018-01-13 04:53:03.000000000 
+0100
+++ new/python-semver-0.7.0/.eggs/README.txt    1970-01-01 01:00:00.000000000 
+0100
@@ -1,6 +0,0 @@
-This directory contains eggs that were downloaded by setuptools to build, 
test, and run plug-ins.
-
-This directory caches those eggs to prevent repeated downloads.
-
-However, it is safe to delete this directory.
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/.gitignore 
new/python-semver-0.7.0/.gitignore
--- old/python-semver-0.3.0/.gitignore  2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/.gitignore  2019-08-12 14:02:25.000000000 +0200
@@ -52,3 +52,5 @@
 # Sphinx documentation
 docs/_build/
 
+# misc
+node_modules
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/.travis.yml 
new/python-semver-0.7.0/.travis.yml
--- old/python-semver-0.3.0/.travis.yml 2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/.travis.yml 2019-08-12 14:02:25.000000000 +0200
@@ -7,7 +7,7 @@
   - "nightly"
 # command to install dependencies
 install:
-  - pip install
+  - pip install -e .
 # command to run tests
 script:
   - pytest # or py.test for Python versions 3.5 and below
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/CHANGES.txt 
new/python-semver-0.7.0/CHANGES.txt
--- old/python-semver-0.3.0/CHANGES.txt 2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/CHANGES.txt 2019-08-12 14:02:25.000000000 +0200
@@ -1,3 +1,27 @@
+0.7.0
+
+Include tests in source distributions (#31)
+
+0.6.0
+
+- more strict error handling (InvalidTypeIncluded is added)
+
+0.5.1
+
+- bug fix
+
+0.5.0
+
+- include_prerelease option is added
+
+0.4.2
+
+- fix bug for support 4-digit (handling prelease and build)
+
+0.4.0
+
+- suport 4-digit version (e.g. x.y.z.a)
+
 0.3.0
 
 - drop python2.x support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/MANIFEST.in 
new/python-semver-0.7.0/MANIFEST.in
--- old/python-semver-0.3.0/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100
+++ new/python-semver-0.7.0/MANIFEST.in 2019-08-12 14:02:25.000000000 +0200
@@ -0,0 +1,4 @@
+graft examples
+graft semver/tests
+global-exclude __pycache__
+global-exclude *.py[co]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/README.rst 
new/python-semver-0.7.0/README.rst
--- old/python-semver-0.3.0/README.rst  2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/README.rst  2019-08-12 14:02:25.000000000 +0200
@@ -34,3 +34,8 @@
        (max_satisfying(versions, range_, loose=False) == '2.0.0')
    except ValueError as e:
        assert e.args[0] == "Invalid Version: 2.0.0b1"
+
+   versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6-pre.1', '2.0.1']
+   range_ = '~1.2.3'
+   assert max_satisfying(versions, range_, loose=False, 
include_prerelease=True) == '1.2.6-pre.1'
+   assert max_satisfying(versions, range_, loose=False, 
include_prerelease=False) == '1.2.5'
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/examples/readme.py 
new/python-semver-0.7.0/examples/readme.py
--- old/python-semver-0.3.0/examples/readme.py  2018-01-13 04:53:03.000000000 
+0100
+++ new/python-semver-0.7.0/examples/readme.py  2019-08-12 14:02:25.000000000 
+0200
@@ -1,4 +1,11 @@
 # -*- coding:utf-8 -*-
+from semver import satisfies
+
+assert satisfies("1.2.3-dev.1+abc", ">1.1.0 <2.0.0", include_prerelease=True)
+assert not satisfies("1.2.3-dev.1+abc", ">1.1.0 <2.0.0", 
include_prerelease=False)
+assert satisfies("1.2.3", ">1.1 <2.0")
+
+
 from semver import max_satisfying
 
 versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6', '2.0.1']
@@ -14,3 +21,9 @@
     (max_satisfying(versions, range_, loose=False) == '2.0.0')
 except ValueError as e:
     assert e.args[0] == "Invalid Version: 2.0.0b1"
+
+
+versions = ['1.2.3', '1.2.4', '1.2.5', '1.2.6-pre.1', '2.0.1']
+range_ = '~1.2.3'
+assert max_satisfying(versions, range_, loose=False, include_prerelease=True) 
== '1.2.6-pre.1'
+assert max_satisfying(versions, range_, loose=False, include_prerelease=False) 
== '1.2.5'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/semver/__init__.py 
new/python-semver-0.7.0/semver/__init__.py
--- old/python-semver-0.3.0/semver/__init__.py  2018-01-13 04:53:03.000000000 
+0100
+++ new/python-semver-0.7.0/semver/__init__.py  2019-08-12 14:02:25.000000000 
+0200
@@ -1,12 +1,16 @@
 # -*- coding:utf-8 -*-
 import logging
 import re
-logger = logging.getLogger(__name__)
 
 
+logger = logging.getLogger(__name__)
 SEMVER_SPEC_VERSION = '2.0.0'
 
 
+class InvalidTypeIncluded(ValueError):
+    pass
+
+
 class _R(object):
     def __init__(self, i):
         self.i = i
@@ -278,7 +282,7 @@
         return None
 
 
-NUMERIC = re.compile("^\d+$")
+NUMERIC = re.compile(r"^\d+$")
 
 
 def semver(version, loose):
@@ -288,7 +292,7 @@
         else:
             version = version.version
     elif not isinstance(version, str):  # xxx:
-        raise ValueError("Invalid Version: {}".format(version))
+        raise InvalidTypeIncluded("must be str, but {!r}".format(version))
 
     """
     if (!(this instanceof SemVer))
@@ -301,21 +305,54 @@
 
 
 class SemVer(object):
+    # major, minor, patch, prerelease, build, micro_version
+
     def __init__(self, version, loose):
         logger.debug("SemVer %s, %s", version, loose)
         self.loose = loose
         self.raw = version
+        self.micro_versions = []
+        self.build = []
 
         m = regexp[LOOSE if loose else FULL].search(version.strip())
         if not m:
             if not loose:
                 raise ValueError("Invalid Version: {}".format(version))
-            m = regexp[RECOVERYVERSIONNAME].search(version.strip())
+            if not hasattr(version, "strip"):
+                raise ValueError("Invalid Version: {}".format(version))
+            m = regexp[RECOVERYVERSIONNAME].match(version.strip())
+            if m is None:
+                raise ValueError("Invalid Version: {}".format(version))
             self.major = int(m.group(1)) if m.group(1) else 0
             self.minor = int(m.group(2)) if m.group(2) else 0
             self.patch = 0
             if not m.group(3):
-                self.prerelease = []
+                # this is not same behaviour  node's semver (see: 
https://github.com/podhmo/python-semver/issues/15)
+                self.prerelease = [id for id in 
version.strip()[m.end():].split(".") if id]
+                if self.prerelease and NUMERIC.search(self.prerelease[0]):
+                    self.patch = int(self.prerelease[0])
+                    self.prerelease = self.prerelease[1:]
+
+                prerelease = []
+                for id in self.prerelease:
+                    if "-" in id:
+                        other = prerelease
+                        ks = id.split("-")
+                    elif "+" in id:
+                        other = self.build
+                        ks = id.split("+")
+                    else:
+                        other = None
+                        ks = [id]
+                    for k in ks:
+                        if NUMERIC.search(k):
+                            self.micro_versions.append(int(k))
+                        elif other is None:
+                            raise ValueError("Invalid Version: 
{}".format(version))
+                        else:
+                            other.append(k)
+                self.prerelease = prerelease
+                self.prerelease = [(int(id) if NUMERIC.search(id) else id)for 
id in self.prerelease]
             else:
                 self.prerelease = [(int(id) if NUMERIC.search(id) else id)
                                    for id in m.group(3).split(".")]
@@ -333,8 +370,6 @@
                                    for id in m.group(4).split(".")]
             if m.group(5):
                 self.build = m.group(5).split(".")
-            else:
-                self.build = []
 
         self.format()  # xxx:
 
@@ -342,6 +377,8 @@
         self.version = "{}.{}.{}".format(self.major, self.minor, self.patch)
         if len(self.prerelease) > 0:
             self.version += ("-{}".format(".".join(str(v) for v in 
self.prerelease)))
+        elif self.micro_versions:
+            self.version += ".{}".format(".".join(str(v) for v in 
self.micro_versions))
         return self.version
 
     def __repr__(self):
@@ -485,8 +522,8 @@
 def inc(version, release, loose, identifier=None):  # wow!
     try:
         return make_semver(version, loose).inc(release, 
identifier=identifier).version
-    except Exception as e:
-        logger.debug(e, exc_info=5)
+    except ValueError as e:
+        logger.info(e, exc_info=2)
         return None
 
 
@@ -554,6 +591,8 @@
     def key_function(version):
         v = make_semver(version, loose)
         key = (v.major, v.minor, v.patch)
+        if v.micro_versions:
+            key = key + v.micro_versions
         if v.prerelease:
             key = key + (0,) + tuple(_prerelease_key(
                 v.prerelease))
@@ -691,6 +730,8 @@
 def make_range(range_, loose):
     if isinstance(range_, Range) and range_.loose == loose:
         return range_
+    elif not isinstance(range_, str):  # xxx:
+        raise InvalidTypeIncluded("must be str, but {!r}".format(range_))
 
     # if (!(this instanceof Range))
     #    return new Range(range, loose);
@@ -698,11 +739,11 @@
 
 
 class Range(object):
-    def __init__(self, range_, loose):
+    def __init__(self, range_, loose, _split_rx=re.compile(r"\s*\|\|\s*")):
         self.loose = loose
         #  First, split based on boolean or ||
         self.raw = range_
-        xs = [self.parse_range(r.strip()) for r in re.split(r"\s*\|\|\s*", 
range_)]
+        xs = [self.parse_range(r.strip()) for r in _split_rx.split(range_)]
         self.set = [r for r in xs if r]
 
         if not len(self.set):
@@ -744,7 +785,7 @@
         range_ = regexp[CARETTRIM].sub(caretTrimReplace, range_)
 
         #  normalize spaces
-        range_ = " ".join(re.split("\s+", range_))
+        range_ = " ".join(re.split(r"\s+", range_))
 
         #  At this point, the range is completely trimmed and
         #  ready to be split into comparators.
@@ -752,14 +793,14 @@
             comp_re = regexp[COMPARATORLOOSE]
         else:
             comp_re = regexp[COMPARATOR]
-        set_ = re.split("\s+", ' '.join([parse_comparator(comp, loose) for 
comp in range_.split(" ")]))
+        set_ = re.split(r"\s+", ' '.join([parse_comparator(comp, loose) for 
comp in range_.split(" ")]))
         if self.loose:
             # in loose mode, throw out any that are not valid comparators
             set_ = [comp for comp in set_ if comp_re.search(comp)]
         set_ = [make_comparator(comp, loose) for comp in set_]
         return set_
 
-    def test(self, version):
+    def test(self, version, include_prerelease=False):
         if not version:  # xxx
             return False
 
@@ -767,7 +808,7 @@
             version = make_semver(version, loose=self.loose)
 
         for e in self.set:
-            if test_set(e, version):
+            if test_set(e, version, include_prerelease=include_prerelease):
                 return True
         return False
 
@@ -808,7 +849,7 @@
 
 def replace_tildes(comp, loose):
     return " ".join([replace_tilde(c, loose)
-                     for c in re.split("\s+", comp.strip())])
+                     for c in re.split(r"\s+", comp.strip())])
 
 
 def replace_tilde(comp, loose):
@@ -849,7 +890,7 @@
 #  ^1.2.0 --> >=1.2.0 <2.0.0
 def replace_carets(comp, loose):
     return " ".join([replace_caret(c, loose)
-                     for c in re.split("\s+", comp.strip())])
+                     for c in re.split(r"\s+", comp.strip())])
 
 
 def replace_caret(comp, loose):
@@ -900,7 +941,7 @@
 def replace_xranges(comp, loose):
     logger.debug('replaceXRanges %s %s', comp, loose)
     return " ".join([replace_xrange(c, loose)
-                     for c in re.split("\s+", comp.strip())])
+                     for c in re.split(r"\s+", comp.strip())])
 
 
 def replace_xrange(comp, loose):
@@ -1007,11 +1048,11 @@
     return (from_ + ' ' + to).strip()
 
 
-def test_set(set_, version):
+def test_set(set_, version,  include_prerelease=False):
     for e in set_:
         if not e.test(version):
             return False
-    if len(version.prerelease) > 0:
+    if len(version.prerelease) > 0 and not include_prerelease:
         # Find the set of versions that are allowed to have prereleases
         # For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0
         # That should allow `1.2.3-pr.2` to pass.
@@ -1029,23 +1070,29 @@
     return True
 
 
-def satisfies(version, range_, loose=False):
+def satisfies(version, range_, loose=False, include_prerelease=False):
     try:
         range_ = make_range(range_, loose)
-    except Exception as e:
+    except InvalidTypeIncluded:
+        raise
+    except ValueError as e:
+        logger.info(e, exc_info=2)
         return False
-    return range_.test(version)
+    return range_.test(version, include_prerelease=include_prerelease)
 
 
-def max_satisfying(versions, range_, loose=False):
+def max_satisfying(versions, range_, loose=False, include_prerelease=False):
     try:
         range_ob = make_range(range_, loose=loose)
-    except:
+    except InvalidTypeIncluded:
+        raise
+    except ValueError as e:
+        logger.info(e, exc_info=2)
         return None
     max_ = None
     max_sv = None
     for v in versions:
-        if range_ob.test(v):  # satisfies(v, range_, loose=loose)
+        if range_ob.test(v, include_prerelease=include_prerelease):  # 
satisfies(v, range_, loose=loose)
             if max_ is None or max_sv.compare(v) == -1:  # compare(max, v, 
true)
                 max_ = v
                 max_sv = make_semver(max_, loose=loose)
@@ -1057,7 +1104,10 @@
         #  Return '*' instead of '' so that truthiness works.
         #  This will throw if it's invalid anyway
         return make_range(range_, loose).range or "*"
-    except:
+    except TypeError as e:
+        raise InvalidTypeIncluded("{} (range_={!r}".format(e, range_))
+    except ValueError as e:
+        logger.info(e, exc_info=2)
         return None
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/semver/tests/test_for_4digit.py 
new/python-semver-0.7.0/semver/tests/test_for_4digit.py
--- old/python-semver-0.3.0/semver/tests/test_for_4digit.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/python-semver-0.7.0/semver/tests/test_for_4digit.py     2019-08-12 
14:02:25.000000000 +0200
@@ -0,0 +1,109 @@
+# https://github.com/podhmo/python-semver/issues/15
+import pytest
+
+cands = [
+    (
+        "4.1.3", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": [],
+            "micro_versions": [],
+        }
+    ),
+    (
+        "4.1.3+jenkins", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": ["jenkins"],
+            "micro_versions": [],
+        }
+    ),
+    (
+        "4.1.3-pre", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": [],
+            "micro_versions": [],
+        }
+    ),
+    # 4-digit
+    (
+        "4.1.3.2", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": [],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2+jenkins", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": [],
+            "build": ["jenkins"],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2-pre", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": [],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2-pre2", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre2"],
+            "build": [],
+            "micro_versions": [2],
+        }
+    ),
+    (
+        "4.1.3.2-pre.2", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": [],
+            "micro_versions": [2, 2],
+        }
+    ),
+    (
+        "4.1.3.2-pre.2+xxx", True, {
+            "major": 4,
+            "minor": 1,
+            "patch": 3,
+            "prerelease": ["pre"],
+            "build": ["xxx"],
+            "micro_versions": [2, 2],
+        }
+    ),
+]
+
+
[email protected]("v, loose, expected", cands)
+def test_parse(v, loose, expected):
+    from semver import make_semver
+    got = make_semver(v, loose=loose)
+    assert got.raw == v
+    assert got.major == expected["major"]
+    assert got.minor == expected["minor"]
+    assert got.patch == expected["patch"]
+    assert got.prerelease == expected["prerelease"]
+    assert got.build == expected["build"]
+    assert got.micro_versions == expected["micro_versions"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-semver-0.3.0/semver/tests/test_invalid_version_number.py 
new/python-semver-0.7.0/semver/tests/test_invalid_version_number.py
--- old/python-semver-0.3.0/semver/tests/test_invalid_version_number.py 
2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/semver/tests/test_invalid_version_number.py 
2019-08-12 14:02:25.000000000 +0200
@@ -2,13 +2,32 @@
 import pytest
 # node-semver/test/index.js
 
-cands = ['1.2.3.4', 'NOT VALID', 1.2, None, 'Infinity.NaN.Infinity']
+cands = [
+    ('1.2.3.4', False, ValueError),
+    ('NOT VALID', False, ValueError),
+    (1.2, False, ValueError),
+    ("1.2", False, ValueError),
+    ("1.a.2", False, ValueError),
+    (None, False, ValueError),
+    ('X.2', False, ValueError),
+    ('Infinity.NaN.Infinity', False, ValueError),
+    ('1.2.3.4', True, None),
+    ('NOT VALID', True, ValueError),
+    (1.2, True, ValueError),
+    ("1.2", True, None),
+    ("1.a.2", True, ValueError),
+    (None, True, ValueError),
+    ('Infinity.NaN.Infinity', True, ValueError),
+    ('X.2', True, ValueError),
+]
 
 
[email protected]("v", cands)
-def test_it(v):
[email protected]("v, loose, exc", cands)
+def test_it(v, loose, exc):
     import pytest
     from semver import make_semver
-    with pytest.raises(ValueError):
-        loose = False
+    if exc is not None:
+        with pytest.raises(exc):
+            make_semver(v, loose)
+    else:
         make_semver(v, loose)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-semver-0.3.0/semver/tests/test_max_satisfying.py 
new/python-semver-0.7.0/semver/tests/test_max_satisfying.py
--- old/python-semver-0.3.0/semver/tests/test_max_satisfying.py 2018-01-13 
04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/semver/tests/test_max_satisfying.py 2019-08-12 
14:02:25.000000000 +0200
@@ -3,14 +3,28 @@
 # node-semver/test/index.js
 
 cands = [
-    [['1.2.3', '1.2.4'], '1.2', '1.2.4', False],
-    [['1.2.4', '1.2.3'], '1.2', '1.2.4', False],
-    [['1.2.3', '1.2.4', '1.2.5', '1.2.6'], '~1.2.3', '1.2.6', False],
-    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', 
'2.0.0', '2.1.0'], '~2.0.0', '2.0.0', True]
+    [['1.2.4', '1.2.3', '1.2.5-beta'], '~1.2.3', '1.2.5-beta', False, True],
+    [['1.2.4', '1.2.3', '1.2.5-beta'], '~1.2.3', '1.2.4', False, False],
+    [['1.2.3', '1.2.4'], '1.2', '1.2.4', False, False],
+    [['1.2.4', '1.2.3'], '1.2', '1.2.4', False, False],
+    [['1.2.3', '1.2.4', '1.2.5', '1.2.6'], '~1.2.3', '1.2.6', False, False],
+    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', 
'2.0.0', '2.1.0'], '~2.0.0', '2.0.0',
+     True, False],
+    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0b3', 
'2.0.0', '2.1.0'], '~2.0.0', ValueError,
+     False, False],
+    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0', 
'2.0.1b1', '2.1.0'], '~2.0.0', '2.0.0',
+     True, False],
+    [['1.1.0', '1.2.0', '1.2.1', '1.3.0', '2.0.0b1', '2.0.0b2', '2.0.0', 
'2.0.1b1', '2.1.0'], '~2.0.0', '2.0.1b1',
+     True, True]
+
 ]
 
 
[email protected]("versions, range_, expect, loose", cands)
-def test_it(versions, range_, expect, loose):
[email protected]("versions, range_, expect, loose, 
include_prerelease", cands)
+def test_it(versions, range_, expect, loose, include_prerelease):
     from semver import max_satisfying
-    assert max_satisfying(versions, range_, loose) == expect
+    if isinstance(expect, type) and issubclass(expect, Exception):
+        with pytest.raises(expect):
+            max_satisfying(versions, range_, loose, include_prerelease)
+    else:
+        assert max_satisfying(versions, range_, loose, include_prerelease) == 
expect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/python-semver-0.3.0/semver/tests/test_passing_bytes.py 
new/python-semver-0.7.0/semver/tests/test_passing_bytes.py
--- old/python-semver-0.3.0/semver/tests/test_passing_bytes.py  1970-01-01 
01:00:00.000000000 +0100
+++ new/python-semver-0.7.0/semver/tests/test_passing_bytes.py  2019-08-12 
14:02:25.000000000 +0200
@@ -0,0 +1,30 @@
+import pytest
+
+
+def test_max_satisfying():
+    def _callFUT(versions, range_):
+        from semver import max_satisfying
+        max_satisfying(versions, range_)
+
+    from semver import InvalidTypeIncluded
+    with pytest.raises(InvalidTypeIncluded):
+        _callFUT([b"1.0.0"], "1.0.0")
+    with pytest.raises(InvalidTypeIncluded):
+        _callFUT(["1.0.0"], b"1.0.0")
+    with pytest.raises(InvalidTypeIncluded):
+        _callFUT("1.0.0", [b"1.0.0"])  # mistakes
+    with pytest.raises(InvalidTypeIncluded):
+        _callFUT(b"1.0.0", ["1.0.0"])  # mistakes
+    _callFUT(["1.0.0"], "1.0.0")
+
+
+def test_satisfies():
+    def _callFUT(version, range_):
+        from semver import satisfies
+        satisfies(version, range_)
+
+    from semver import InvalidTypeIncluded
+    with pytest.raises(InvalidTypeIncluded):
+        _callFUT(b"1.0.0", "1.0.0")
+    with pytest.raises(InvalidTypeIncluded):
+        _callFUT("1.0.0", b"1.0.0")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/semver/tests/test_range.py 
new/python-semver-0.7.0/semver/tests/test_range.py
--- old/python-semver-0.3.0/semver/tests/test_range.py  2018-01-13 
04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/semver/tests/test_range.py  2019-08-12 
14:02:25.000000000 +0200
@@ -3,112 +3,114 @@
 # node-semver/test/index.js
 
 cands = [
-    ['1.0.0 - 2.0.0', '1.2.3', False],
-    ['^1.2.3+build', '1.2.3', False],
-    ['^1.2.3+build', '1.3.0', False],
-    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3', False],
-    ['1.2.3pre+asdf - 2.4.3-pre+asdf', '1.2.3', True],
-    ['1.2.3-pre+asdf - 2.4.3pre+asdf', '1.2.3', True],
-    ['1.2.3pre+asdf - 2.4.3pre+asdf', '1.2.3', True],
-    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3-pre.2', False],
-    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '2.4.3-alpha', False],
-    ['1.2.3+asdf - 2.4.3+asdf', '1.2.3', False],
-    ['1.0.0', '1.0.0', False],
-    ['>=*', '0.2.4', False],
-    ['', '1.0.0', False],
-    ['*', '1.2.3', False],
-    ['*', 'v1.2.3', True],
-    ['>=1.0.0', '1.0.0', False],
-    ['>=1.0.0', '1.0.1', False],
-    ['>=1.0.0', '1.1.0', False],
-    ['>1.0.0', '1.0.1', False],
-    ['>1.0.0', '1.1.0', False],
-    ['<=2.0.0', '2.0.0', False],
-    ['<=2.0.0', '1.9999.9999', False],
-    ['<=2.0.0', '0.2.9', False],
-    ['<2.0.0', '1.9999.9999', False],
-    ['<2.0.0', '0.2.9', False],
-    ['>= 1.0.0', '1.0.0', False],
-    ['>=  1.0.0', '1.0.1', False],
-    ['>=   1.0.0', '1.1.0', False],
-    ['> 1.0.0', '1.0.1', False],
-    ['>  1.0.0', '1.1.0', False],
-    ['<=   2.0.0', '2.0.0', False],
-    ['<= 2.0.0', '1.9999.9999', False],
-    ['<=  2.0.0', '0.2.9', False],
-    ['<    2.0.0', '1.9999.9999', False],
-    ['<\t2.0.0', '0.2.9', False],
-    ['>=0.1.97', 'v0.1.97', True],
-    ['>=0.1.97', '0.1.97', False],
-    ['0.1.20 || 1.2.4', '1.2.4', False],
-    ['>=0.2.3 || <0.0.1', '0.0.0', False],
-    ['>=0.2.3 || <0.0.1', '0.2.3', False],
-    ['>=0.2.3 || <0.0.1', '0.2.4', False],
-    ['||', '1.3.4', False],
-    ['2.x.x', '2.1.3', False],
-    ['1.2.x', '1.2.3', False],
-    ['1.2.x || 2.x', '2.1.3', False],
-    ['1.2.x || 2.x', '1.2.3', False],
-    ['x', '1.2.3', False],
-    ['2.*.*', '2.1.3', False],
-    ['1.2.*', '1.2.3', False],
-    ['1.2.* || 2.*', '2.1.3', False],
-    ['1.2.* || 2.*', '1.2.3', False],
-    ['*', '1.2.3', False],
-    ['2', '2.1.2', False],
-    ['2.3', '2.3.1', False],
-    ['~x', '0.0.9', False],  # >=2.4.0 <2.5.0
-    ['~2', '2.0.9', False],  # >=2.4.0 <2.5.0
-    ['~2.4', '2.4.0', False],  # >=2.4.0 <2.5.0
-    ['~2.4', '2.4.5', False],
-    ['~>3.2.1', '3.2.2', False],  # >=3.2.1 <3.3.0,
-    ['~1', '1.2.3', False],  # >=1.0.0 <2.0.0
-    ['~>1', '1.2.3', False],
-    ['~> 1', '1.2.3', False],
-    ['~1.0', '1.0.2', False],  # >=1.0.0 <1.1.0,
-    ['~ 1.0', '1.0.2', False],
-    ['~ 1.0.3', '1.0.12', False],
-    ['>=1', '1.0.0', False],
-    ['>= 1', '1.0.0', False],
-    ['<1.2', '1.1.1', False],
-    ['< 1.2', '1.1.1', False],
-    ['~v0.5.4-pre', '0.5.5', False],
-    ['~v0.5.4-pre', '0.5.4', False],
-    ['=0.7.x', '0.7.2', False],
-    ['<=0.7.x', '0.7.2', False],
-    ['>=0.7.x', '0.7.2', False],
-    ['<=0.7.x', '0.6.2', False],
-    ['~1.2.1 >=1.2.3', '1.2.3', False],
-    ['~1.2.1 =1.2.3', '1.2.3', False],
-    ['~1.2.1 1.2.3', '1.2.3', False],
-    ['~1.2.1 >=1.2.3 1.2.3', '1.2.3', False],
-    ['~1.2.1 1.2.3 >=1.2.3', '1.2.3', False],
-    ['~1.2.1 1.2.3', '1.2.3', False],
-    ['>=1.2.1 1.2.3', '1.2.3', False],
-    ['1.2.3 >=1.2.1', '1.2.3', False],
-    ['>=1.2.3 >=1.2.1', '1.2.3', False],
-    ['>=1.2.1 >=1.2.3', '1.2.3', False],
-    ['>=1.2', '1.2.8', False],
-    ['^1.2.3', '1.8.1', False],
-    ['^0.1.2', '0.1.2', False],
-    ['^0.1', '0.1.2', False],
-    ['^0.0.1', '0.0.1', False],
-    ['^1.2', '1.4.2', False],
-    ['^1.2 ^1', '1.4.2', False],
-    ['^1.2.3-alpha', '1.2.3-pre', False],
-    ['^1.2.0-alpha', '1.2.0-pre', False],
-    ['^0.0.1-alpha', '0.0.1-beta', False],
-    ['^0.1.1-alpha', '0.1.1-beta', False],
-    ['^x', '1.2.3', False],
-    ['x - 1.0.0', '0.9.7', False],
-    ['x - 1.x', '0.9.7', False],
-    ['1.0.0 - x', '1.9.7', False],
-    ['1.x - x', '1.9.7', False],
-    ['<=7.x', '7.9.9', False]
+    ['1.0.0 - 2.0.0', '1.2.3', False, False],
+    ['^1.2.3+build', '1.2.3', False, False],
+    ['^1.2.3+build', '1.3.0', False, False],
+    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3', False, False],
+    ['1.2.3pre+asdf - 2.4.3-pre+asdf', '1.2.3', True, False],
+    ['1.2.3-pre+asdf - 2.4.3pre+asdf', '1.2.3', True, False],
+    ['1.2.3pre+asdf - 2.4.3pre+asdf', '1.2.3', True, False],
+    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '1.2.3-pre.2', False, False],
+    ['1.2.3-pre+asdf - 2.4.3-pre+asdf', '2.4.3-alpha', False, False],
+    ['1.2.3+asdf - 2.4.3+asdf', '1.2.3', False, False],
+    ['1.0.0', '1.0.0', False, False],
+    ['>=*', '0.2.4', False, False],
+    ['', '1.0.0', False, False],
+    ['*', '1.2.3', False, False],
+    ['*', 'v1.2.3', True, False],
+    ['>=1.0.0', '1.0.0', False, False],
+    ['>=1.0.0', '1.0.1', False, False],
+    ['>=1.0.0', '1.1.0', False, False],
+    ['>1.0.0', '1.0.1', False, False],
+    ['>1.0.0', '1.0.1-pre.1', False, True],
+    ['>1.0.0', '1.1.0', False, False],
+    ['<=2.0.0', '2.0.0', False, False],
+    ['<=2.0.0', '1.9999.9999', False, False],
+    ['<=2.0.0', '0.2.9', False, False],
+    ['<2.0.0', '1.9999.9999', False, False],
+    ['<2.0.0', '0.2.9', False, False],
+    ['>= 1.0.0', '1.0.0', False, False],
+    ['>=  1.0.0', '1.0.1', False, False],
+    ['>=   1.0.0', '1.1.0', False, False],
+    ['> 1.0.0', '1.0.1', False, False],
+    ['>  1.0.0', '1.1.0', False, False],
+    ['<=   2.0.0', '2.0.0', False, False],
+    ['<= 2.0.0', '1.9999.9999', False, False],
+    ['<=  2.0.0', '0.2.9', False, False],
+    ['<    2.0.0', '1.9999.9999', False, False],
+    ['<\t2.0.0', '0.2.9', False, False],
+    ['>=0.1.97', 'v0.1.97', True, False],
+    ['>=0.1.97', '0.1.97', False, False],
+    ['0.1.20 || 1.2.4', '1.2.4', False, False],
+    ['>=0.2.3 || <0.0.1', '0.0.0', False, False],
+    ['>=0.2.3 || <0.0.1', '0.2.3', False, False],
+    ['>=0.2.3 || <0.0.1', '0.2.4', False, False],
+    ['||', '1.3.4', False, False],
+    ['2.x.x', '2.1.3', False, False],
+    ['1.2.x', '1.2.3', False, False],
+    ['1.2.x || 2.x', '2.1.3', False, False],
+    ['1.2.x || 2.x', '1.2.3', False, False],
+    ['x', '1.2.3', False, False],
+    ['2.*.*', '2.1.3', False, False],
+    ['1.2.*', '1.2.3', False, False],
+    ['1.2.* || 2.*', '2.1.3', False, False],
+    ['1.2.* || 2.*', '1.2.3', False, False],
+    ['*', '1.2.3', False, False],
+    ['2', '2.1.2', False, False],
+    ['2.3', '2.3.1', False, False],
+    ['~x', '0.0.9', False, False],  # >=2.4.0 <2.5.0
+    ['~2', '2.0.9', False, False],  # >=2.4.0 <2.5.0
+    ['~2.4', '2.4.0', False, False],  # >=2.4.0 <2.5.0
+    ['~2.4', '2.4.5', False, False],
+    ['~>3.2.1', '3.2.2', False, False],  # >=3.2.1 <3.3.0,
+    ['~1', '1.2.3', False, False],  # >=1.0.0 <2.0.0
+    ['~>1', '1.2.3', False, False],
+    ['~> 1', '1.2.3', False, False],
+    ['~1.0', '1.0.2', False, False],  # >=1.0.0 <1.1.0,
+    ['~ 1.0', '1.0.2', False, False],
+    ['~ 1.0.3', '1.0.12', False, False],
+    ['>=1', '1.0.0', False, False],
+    ['>= 1', '1.0.0', False, False],
+    ['<1.2', '1.1.1', False, False],
+    ['< 1.2', '1.1.1', False, False],
+    ['~v0.5.4-pre', '0.5.5', False, False],
+    ['~v0.5.4-pre', '0.5.4', False, False],
+    ['=0.7.x', '0.7.2', False, False],
+    ['<=0.7.x', '0.7.2', False, False],
+    ['>=0.7.x', '0.7.2', False, False],
+    ['<=0.7.x', '0.6.2', False, False],
+    ['~1.2.1 >=1.2.3', '1.2.3', False, False],
+    ['~1.2.1 =1.2.3', '1.2.3', False, False],
+    ['~1.2.1 1.2.3', '1.2.3', False, False],
+    ['~1.2.1 >=1.2.3 1.2.3', '1.2.3', False, False],
+    ['~1.2.1 1.2.3 >=1.2.3', '1.2.3', False, False],
+    ['~1.2.1 1.2.3', '1.2.3', False, False],
+    ['>=1.2.1 1.2.3', '1.2.3', False, False],
+    ['1.2.3 >=1.2.1', '1.2.3', False, False],
+    ['>=1.2.3 >=1.2.1', '1.2.3', False, False],
+    ['>=1.2.1 >=1.2.3', '1.2.3', False, False],
+    ['>=1.2', '1.2.8', False, False],
+    ['^1.2.3', '1.8.1', False, False],
+    ['^0.1.2', '0.1.2', False, False],
+    ['^0.1', '0.1.2', False, False],
+    ['^0.0.1', '0.0.1', False, False],
+    ['^1.2', '1.4.2', False, False],
+    ['^1.2 ^1', '1.4.2', False, False],
+    ['^1.2.3-alpha', '1.2.3-pre', False, False],
+    ['^1.2.3-alpha', '1.2.4-pre', False, True],
+    ['^1.2.0-alpha', '1.2.0-pre', False, False],
+    ['^0.0.1-alpha', '0.0.1-beta', False, False],
+    ['^0.1.1-alpha', '0.1.1-beta', False, False],
+    ['^x', '1.2.3', False, False],
+    ['x - 1.0.0', '0.9.7', False, False],
+    ['x - 1.x', '0.9.7', False, False],
+    ['1.0.0 - x', '1.9.7', False, False],
+    ['1.x - x', '1.9.7', False, False],
+    ['<=7.x', '7.9.9', False, False]
 ]
 
 
[email protected]("range_, version, loose", cands)
-def test_it(range_, version, loose):
[email protected]("range_, version, loose, include_prerelease", cands)
+def test_it(range_, version, loose, include_prerelease):
     from semver import satisfies
-    assert satisfies(version, range_, loose) is True
+    assert satisfies(version, range_, loose, include_prerelease) is True
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/python-semver-0.3.0/setup.py 
new/python-semver-0.7.0/setup.py
--- old/python-semver-0.3.0/setup.py    2018-01-13 04:53:03.000000000 +0100
+++ new/python-semver-0.7.0/setup.py    2019-08-12 14:02:25.000000000 +0200
@@ -4,14 +4,15 @@
 import sys
 
 from setuptools import setup, find_packages
+
 here = os.path.abspath(os.path.dirname(__file__))
 try:
-    with open(os.path.join(here, 'README.rst')) as f:
+    with open(os.path.join(here, "README.rst")) as f:
         README = f.read()
-    with open(os.path.join(here, 'CHANGES.txt')) as f:
+    with open(os.path.join(here, "CHANGES.txt")) as f:
         CHANGES = f.read()
 except IOError:
-    README = CHANGES = ''
+    README = CHANGES = ""
 
 install_requires = []
 
@@ -31,20 +32,21 @@
 
     def run_tests(self):
         import pytest
+
         pytest.main(self.test_args)
 
 
 setup(
-    name='node-semver',
-    version='0.3.0',
-    description='port of node-semver',
-    long_description=README + '\n\n' + CHANGES,
+    name="node-semver",
+    version="0.7.0",
+    description="port of node-semver",
+    long_description=README + "\n\n" + CHANGES,
     classifiers=[
         "Programming Language :: Python",
-        'Programming Language :: Python :: 3',
+        "Programming Language :: Python :: 3",
         "Programming Language :: Python :: Implementation :: CPython",
     ],
-    keywords='version semver',
+    keywords="version semver",
     author="podhmo",
     author_email="[email protected]",
     url="https://github.com/podhmo/python-semver";,
@@ -52,12 +54,9 @@
     include_package_data=True,
     zip_safe=False,
     install_requires=install_requires,
-    extras_require={
-        'testing': testing_extras,
-        'docs': docs_extras,
-    },
+    extras_require={"testing": testing_extras, "docs": docs_extras},
     tests_require=tests_require,
-    cmdclass={'test': PyTest},
+    cmdclass={"test": PyTest},
     entry_points="""      """,
     license="mit",
 )


Reply via email to