Giter Site home page Giter Site logo

Comments (5)

nieder avatar nieder commented on June 14, 2024 1

Figured it out kind of.
If I call pytest directly from the source root directory, the tests fail looking for a module from tests:

$ pytest-3.10
ImportError while loading conftest '/sw/build.build/semver-py310-3.0.1-1/semver-3.0.1/tests/conftest.py'.
tests/conftest.py:7: in <module>
    from coerce import coerce  # noqa:E402
E   ModuleNotFoundError: No module named 'coerce'

If I add $builddir/tests to PYTHONPATH, it looks to be grabbing an older installed version of semver:

$ PYTHONPATH=$builddir/tests pytest-3.10
ImportError while loading conftest '/sw/build.build/semver-py310-3.0.1-1/semver-3.0.1/tests/conftest.py'.
tests/conftest.py:7: in <module>
    from coerce import coerce  # noqa:E402
tests/coerce.py:2: in <module>
    from semver import Version
E   ImportError: cannot import name 'Version' from 'semver' (/sw/lib/python3.10/site-packages/semver.py)

So I add $builddir/build/lib to PYTHONPATH as well, and get the error above:

$ PYTHONPATH=$builddir/tests:$builddir/build/lib /sw/bin/pytest-3.10 || exit 2
/sw/lib/python3.10/site-packages/_pytest/runner.py:311: in from_call
    result: Optional[TResult] = func()
/sw/lib/python3.10/site-packages/_pytest/runner.py:341: in <lambda>
    call = CallInfo.from_call(lambda: list(collector.collect()), "collect")
/sw/lib/python3.10/site-packages/_pytest/doctest.py:532: in collect
    module = import_path(self.fspath)
/sw/lib/python3.10/site-packages/_pytest/pathlib.py:544: in import_path
    raise ImportPathMismatchError(module_name, module_file, path)
E   _pytest.pathlib.ImportPathMismatchError: ('coerce', '/sw/build.build/semver-py310-3.0.1-1/semver-3.0.1/tests/coerce.py', PosixPath('/sw/build.build/semver-py310-3.0.1-1/semver-3.0.1/docs/advanced/coerce.py'))

That the error was complaining about a mismatch between identically named file in tests and docs made me play with how pytest was being called. If I cd into tests, then call the same command as in the last attempt, the tests all pass. Don't know why it's behaving like this, however.

from python-semver.

tomschr avatar tomschr commented on June 14, 2024

Hi @nieder,
thank you for your report, much appreciated!

This is a bit hard to dissect so I've added MacOS to our GitHub Action. The GHA job succeeds!

I've added now MacOS for every tested Python version.

I don't know what's wrong with your environment, but I cannot reproduce it. It may be even not related to semver.

Could you investigate a bit further?

from python-semver.

tomschr avatar tomschr commented on June 14, 2024

Thanks for the detailed analysis, @nieder! 👍

The steps you did look wrong to me. These are usually not necessary. Are you using pytest from your system or from the virtual Python environment? This can make a difference.

Normally you use Tox. That does all the things for you. If you don't have Tox installed on your MacOS, do the following preparation steps:

  1. Start with a virtual Python environment like:

    $ python3 -m venv .venv
    
  2. Activate the virtual Python environment:

    $ source .venv/bin/active
    
  3. Install all dependencies:

    $ pip3 install --upgrade pip setuptools
    $ pip3 install tox
    

This is similar to other Python projects. The GitHub Actions uses the above steps too. This is the recommended way. Anything else would lead to strange errors that other things are taken into account.

Depending on what Python versions you have installed, you can use tox in different ways. This is described here:

https://python-semver.readthedocs.io/en/latest/contribute/run-test-suite.html

I'm inclined to close this issue as it seems this is something on your system rather than with the project itself.

from python-semver.

tomschr avatar tomschr commented on June 14, 2024

This is how a successful Tox run looks like:

Successful Tox run (click me)
$ tox -e py310
py310: commands[0]> pytest
================================================= test session starts =================================================
platform linux -- Python 3.10.9, pytest-7.4.0, pluggy-1.2.0
cachedir: .tox/py310/.pytest_cache
rootdir: /home/tom/repos/GH/tomschr/python-semver
configfile: setup.cfg
testpaths: tests, docs
plugins: cov-4.1.0
collected 348 items                                                                                                   

tests/test_bump.py ........................                                                                     [  6%]
tests/test_compare.py .......................................................                                   [ 22%]
tests/test_deprecated_functions.py .....................                                                        [ 28%]
tests/test_docstrings.py .....................                                                                  [ 34%]
tests/test_format.py ..............                                                                             [ 38%]
tests/test_immutable.py ......                                                                                  [ 40%]
tests/test_index.py ............................................                                                [ 53%]
tests/test_match.py ...................                                                                         [ 58%]
tests/test_max-min.py ...........                                                                               [ 61%]
tests/test_parsing.py ..................................                                                        [ 71%]
tests/test_pysemver-cli.py ...........................                                                          [ 79%]
tests/test_replace.py .................                                                                         [ 84%]
tests/test_semver.py ...............................                                                            [ 93%]
tests/test_subclass.py .                                                                                        [ 93%]
tests/test_typeerror-274.py ..                                                                                  [ 93%]
docs/advanced/convert-pypi-to-semver.rst .                                                                      [ 94%]
docs/advanced/create-subclasses-from-version.rst .                                                              [ 94%]
docs/advanced/deal-with-invalid-versions.rst .                                                                  [ 94%]
docs/contribute/doc-semver.rst .                                                                                [ 95%]
docs/migration/replace-deprecated-functions.rst .                                                               [ 95%]
docs/usage/access-parts-of-a-version.rst .                                                                      [ 95%]
docs/usage/access-parts-through-index.rst .                                                                     [ 95%]
docs/usage/check-compatible-semver-version.rst .                                                                [ 96%]
docs/usage/check-valid-semver-version.rst .                                                                     [ 96%]
docs/usage/compare-versions-through-expression.rst .                                                            [ 96%]
docs/usage/compare-versions.rst .                                                                               [ 97%]
docs/usage/convert-version-into-different-types.rst .                                                           [ 97%]
docs/usage/create-a-version.rst .                                                                               [ 97%]
docs/usage/determine-version-equality.rst .                                                                     [ 97%]
docs/usage/get-min-and-max-of-multiple-versions.rst .                                                           [ 98%]
docs/usage/increase-parts-of-a-version_prereleases.rst .                                                        [ 98%]
docs/usage/parse-version-string.rst .                                                                           [ 98%]
docs/usage/raise-parts-of-a-version.rst .                                                                       [ 99%]
docs/usage/replace-parts-of-a-version.rst .                                                                     [ 99%]
docs/usage/semver-version.rst .                                                                                 [ 99%]
docs/usage/semver_org-version.rst .                                                                             [100%]

================================================== warnings summary ===================================================
tests/test_compare.py::test_should_get_less[1.0.0-2.0.0]
tests/test_compare.py::test_should_get_less[1.0.0-alpha-1.0.0-alpha.1]
tests/test_compare.py::test_should_get_less[1.0.0-alpha.1-1.0.0-alpha.beta]
tests/test_compare.py::test_should_get_less[1.0.0-alpha.beta-1.0.0-beta]
tests/test_compare.py::test_should_get_less[1.0.0-beta-1.0.0-beta.2]
tests/test_compare.py::test_should_get_less[1.0.0-beta.2-1.0.0-beta.11]
tests/test_compare.py::test_should_get_less[1.0.0-beta.11-1.0.0-rc.1]
tests/test_compare.py::test_should_get_less[1.0.0-rc.1-1.0.0]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:21: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == -1

tests/test_compare.py::test_should_get_greater[2.0.0-1.0.0]
tests/test_compare.py::test_should_get_greater[1.0.0-alpha.1-1.0.0-alpha]
tests/test_compare.py::test_should_get_greater[1.0.0-alpha.beta-1.0.0-alpha.1]
tests/test_compare.py::test_should_get_greater[1.0.0-beta-1.0.0-alpha.beta]
tests/test_compare.py::test_should_get_greater[1.0.0-beta.2-1.0.0-beta]
tests/test_compare.py::test_should_get_greater[1.0.0-beta.11-1.0.0-beta.2]
tests/test_compare.py::test_should_get_greater[1.0.0-rc.1-1.0.0-beta.11]
tests/test_compare.py::test_should_get_greater[1.0.0-1.0.0-rc.1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:38: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == 1

tests/test_compare.py::test_should_raise_value_error_for_invalid_value[foo-bar]
tests/test_compare.py::test_should_raise_value_error_for_invalid_value[1.0-1.0.0]
tests/test_compare.py::test_should_raise_value_error_for_invalid_value[1.x-1.0.0]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:46: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    compare(left, right)

tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:68: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert (

tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:71: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert (

tests/test_compare.py::test_should_compare_rc_builds[1.0.0-beta.2-1.0.0-beta.11]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:78: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == -1

tests/test_compare.py::test_should_compare_release_candidate_with_release[1.0.0-rc.1-1.0.0]
tests/test_compare.py::test_should_compare_release_candidate_with_release[1.0.0-rc.1+build.1-1.0.0]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:85: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == -1

tests/test_compare.py::test_should_say_equal_versions_are_equal[2.0.0-2.0.0]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9-rc.1-1.1.9-rc.1]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9+build.1-1.1.9+build.1]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9-rc.1+build.1-1.1.9-rc.1+build.1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:98: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == 0

tests/test_compare.py::test_should_compare_versions_with_build_and_release[1.1.9-rc.1-1.1.9-rc.1+build.1-0]
tests/test_compare.py::test_should_compare_versions_with_build_and_release[1.1.9-rc.1-1.1.9+build.1--1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:106: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == expected

tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-0]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0-alpha.1+build.1-1.0.0-alpha.1-0]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-alpha.1-1]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-alpha.1+build.1-1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:119: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == expected

tests/test_compare.py::test_should_get_more_rc1
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:123: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare("1.0.0-rc1", "1.0.0-rc0") == 1

tests/test_compare.py::test_should_compare_prerelease_with_numbers_and_letters
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:130: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare("1.9.1-1unms", "1.9.1+1") == -1

tests/test_compare.py::test_should_not_allow_to_compare_version_with_int
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:295: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    semver.compare(1)

tests/test_typeerror-274.py::test_should_work_with_string_and_bytes
  /home/tom/repos/GH/tomschr/python-semver/tests/test_typeerror-274.py:6: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    result = semver.compare("1.1.0", b"1.2.2")

tests/test_typeerror-274.py::test_should_work_with_string_and_bytes
  /home/tom/repos/GH/tomschr/python-semver/tests/test_typeerror-274.py:8: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    result = semver.compare(b"1.1.0", "1.2.2")

docs/usage/compare-versions.rst::compare-versions.rst
  <doctest compare-versions.rst[0]>:1: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.

docs/usage/compare-versions.rst::compare-versions.rst
  <doctest compare-versions.rst[1]>:1: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.

docs/usage/compare-versions.rst::compare-versions.rst
  <doctest compare-versions.rst[2]>:1: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform linux, python 3.10.9-final-0 -----------
Name                        Stmts   Miss Branch BrPart   Cover   Missing
------------------------------------------------------------------------
src/semver/__about__.py         7      0      0      0  100.0%
src/semver/__init__.py          4      0      0      0  100.0%
src/semver/__main__.py          9      0      2      0  100.0%
src/semver/_deprecated.py      81      0      8      0  100.0%
src/semver/_types.py            9      0      0      0  100.0%
src/semver/cli.py              60      0     10      0  100.0%
src/semver/version.py         274      0    104      0  100.0%
------------------------------------------------------------------------
TOTAL                         444      0    124      0  100.0%

========================================== 348 passed, 52 warnings in 0.96s ===========================================
  py310: OK (1.13=setup[0.02]+cmd[1.11] seconds)
  congratulations :) (1.16 seconds)
Successful Tox run with verbosity option enabled (click me)
$ tox -e py310 -- -v
py310: commands[0]> pytest -v
================================================= test session starts =================================================
platform linux -- Python 3.10.9, pytest-7.4.0, pluggy-1.2.0 -- /home/tom/repos/GH/tomschr/python-semver/.tox/py310/bin/python
cachedir: .tox/py310/.pytest_cache
rootdir: /home/tom/repos/GH/tomschr/python-semver
configfile: setup.cfg
testpaths: tests, docs
plugins: cov-4.1.0
collected 348 items                                                                                                   

tests/test_bump.py::test_should_bump_major PASSED                                                               [  0%]
tests/test_bump.py::test_should_bump_minor PASSED                                                               [  0%]
tests/test_bump.py::test_should_bump_patch PASSED                                                               [  0%]
tests/test_bump.py::test_should_versioninfo_bump_major_and_minor PASSED                                         [  1%]
tests/test_bump.py::test_should_versioninfo_bump_minor_and_patch PASSED                                         [  1%]
tests/test_bump.py::test_should_versioninfo_bump_patch_and_prerelease PASSED                                    [  1%]
tests/test_bump.py::test_should_versioninfo_bump_patch_and_prerelease_with_token PASSED                         [  2%]
tests/test_bump.py::test_should_versioninfo_bump_prerelease_and_build PASSED                                    [  2%]
tests/test_bump.py::test_should_versioninfo_bump_prerelease_and_build_with_token PASSED                         [  2%]
tests/test_bump.py::test_should_versioninfo_bump_multiple PASSED                                                [  2%]
tests/test_bump.py::test_should_versioninfo_bump_prerelease_with_empty_str PASSED                               [  3%]
tests/test_bump.py::test_should_versioninfo_bump_prerelease_with_none PASSED                                    [  3%]
tests/test_bump.py::test_should_versioninfo_bump_build_with_empty_str PASSED                                    [  3%]
tests/test_bump.py::test_should_versioninfo_bump_build_with_none PASSED                                         [  4%]
tests/test_bump.py::test_should_ignore_extensions_for_bump PASSED                                               [  4%]
tests/test_bump.py::test_should_bump_prerelease[3.4.5-rc.9-None-3.4.5-rc.10] PASSED                             [  4%]
tests/test_bump.py::test_should_bump_prerelease[3.4.5-None-3.4.5-rc.1] PASSED                                   [  4%]
tests/test_bump.py::test_should_bump_prerelease[3.4.5-dev-3.4.5-dev.1] PASSED                                   [  5%]
tests/test_bump.py::test_should_bump_prerelease[3.4.5--3.4.5-rc.1] PASSED                                       [  5%]
tests/test_bump.py::test_should_ignore_build_on_prerelease_bump PASSED                                          [  5%]
tests/test_bump.py::test_should_bump_build[3.4.5-rc.1+build.9-3.4.5-rc.1+build.10] PASSED                       [  6%]
tests/test_bump.py::test_should_bump_build[3.4.5-rc.1+0009.dev-3.4.5-rc.1+0010.dev] PASSED                      [  6%]
tests/test_bump.py::test_should_bump_build[3.4.5-rc.1-3.4.5-rc.1+build.1] PASSED                                [  6%]
tests/test_bump.py::test_should_bump_build[3.4.5-3.4.5+build.1] PASSED                                          [  6%]
tests/test_compare.py::test_should_get_less[1.0.0-2.0.0] PASSED                                                 [  7%]
tests/test_compare.py::test_should_get_less[1.0.0-alpha-1.0.0-alpha.1] PASSED                                   [  7%]
tests/test_compare.py::test_should_get_less[1.0.0-alpha.1-1.0.0-alpha.beta] PASSED                              [  7%]
tests/test_compare.py::test_should_get_less[1.0.0-alpha.beta-1.0.0-beta] PASSED                                 [  8%]
tests/test_compare.py::test_should_get_less[1.0.0-beta-1.0.0-beta.2] PASSED                                     [  8%]
tests/test_compare.py::test_should_get_less[1.0.0-beta.2-1.0.0-beta.11] PASSED                                  [  8%]
tests/test_compare.py::test_should_get_less[1.0.0-beta.11-1.0.0-rc.1] PASSED                                    [  8%]
tests/test_compare.py::test_should_get_less[1.0.0-rc.1-1.0.0] PASSED                                            [  9%]
tests/test_compare.py::test_should_get_greater[2.0.0-1.0.0] PASSED                                              [  9%]
tests/test_compare.py::test_should_get_greater[1.0.0-alpha.1-1.0.0-alpha] PASSED                                [  9%]
tests/test_compare.py::test_should_get_greater[1.0.0-alpha.beta-1.0.0-alpha.1] PASSED                           [ 10%]
tests/test_compare.py::test_should_get_greater[1.0.0-beta-1.0.0-alpha.beta] PASSED                              [ 10%]
tests/test_compare.py::test_should_get_greater[1.0.0-beta.2-1.0.0-beta] PASSED                                  [ 10%]
tests/test_compare.py::test_should_get_greater[1.0.0-beta.11-1.0.0-beta.2] PASSED                               [ 10%]
tests/test_compare.py::test_should_get_greater[1.0.0-rc.1-1.0.0-beta.11] PASSED                                 [ 11%]
tests/test_compare.py::test_should_get_greater[1.0.0-1.0.0-rc.1] PASSED                                         [ 11%]
tests/test_compare.py::test_should_raise_value_error_for_invalid_value[foo-bar] PASSED                          [ 11%]
tests/test_compare.py::test_should_raise_value_error_for_invalid_value[1.0-1.0.0] PASSED                        [ 12%]
tests/test_compare.py::test_should_raise_value_error_for_invalid_value[1.x-1.0.0] PASSED                        [ 12%]
tests/test_compare.py::test_should_follow_specification_comparison PASSED                                       [ 12%]
tests/test_compare.py::test_should_compare_rc_builds[1.0.0-beta.2-1.0.0-beta.11] PASSED                         [ 12%]
tests/test_compare.py::test_should_compare_release_candidate_with_release[1.0.0-rc.1-1.0.0] PASSED              [ 13%]
tests/test_compare.py::test_should_compare_release_candidate_with_release[1.0.0-rc.1+build.1-1.0.0] PASSED      [ 13%]
tests/test_compare.py::test_should_say_equal_versions_are_equal[2.0.0-2.0.0] PASSED                             [ 13%]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9-rc.1-1.1.9-rc.1] PASSED                   [ 14%]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9+build.1-1.1.9+build.1] PASSED             [ 14%]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9-rc.1+build.1-1.1.9-rc.1+build.1] PASSED   [ 14%]
tests/test_compare.py::test_should_compare_versions_with_build_and_release[1.1.9-rc.1-1.1.9-rc.1+build.1-0] PASSED [ 14%]
tests/test_compare.py::test_should_compare_versions_with_build_and_release[1.1.9-rc.1-1.1.9+build.1--1] PASSED  [ 15%]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-0] PASSED                       [ 15%]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0-alpha.1+build.1-1.0.0-alpha.1-0] PASSED       [ 15%]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-alpha.1-1] PASSED               [ 16%]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-alpha.1+build.1-1] PASSED       [ 16%]
tests/test_compare.py::test_should_get_more_rc1 PASSED                                                          [ 16%]
tests/test_compare.py::test_should_compare_prerelease_with_numbers_and_letters PASSED                           [ 16%]
tests/test_compare.py::test_should_compare_version_info_objects PASSED                                          [ 17%]
tests/test_compare.py::test_should_compare_version_dictionaries PASSED                                          [ 17%]
tests/test_compare.py::test_should_compare_version_tuples[t0] PASSED                                            [ 17%]
tests/test_compare.py::test_should_compare_version_tuples[t1] PASSED                                            [ 18%]
tests/test_compare.py::test_should_compare_version_tuples[t2] PASSED                                            [ 18%]
tests/test_compare.py::test_should_compare_version_tuples[t3] PASSED                                            [ 18%]
tests/test_compare.py::test_should_compare_version_tuples[t4] PASSED                                            [ 18%]
tests/test_compare.py::test_should_compare_version_list[lst0] PASSED                                            [ 19%]
tests/test_compare.py::test_should_compare_version_list[lst1] PASSED                                            [ 19%]
tests/test_compare.py::test_should_compare_version_list[lst2] PASSED                                            [ 19%]
tests/test_compare.py::test_should_compare_version_list[lst3] PASSED                                            [ 20%]
tests/test_compare.py::test_should_compare_version_list[lst4] PASSED                                            [ 20%]
tests/test_compare.py::test_should_compare_version_string[1.0.0] PASSED                                         [ 20%]
tests/test_compare.py::test_should_compare_version_string[1.0.0-pre.2] PASSED                                   [ 20%]
tests/test_compare.py::test_should_compare_version_string[1.0.0-pre.2+build.4] PASSED                           [ 21%]
tests/test_compare.py::test_should_not_allow_to_compare_invalid_versionstring[1] PASSED                         [ 21%]
tests/test_compare.py::test_should_not_allow_to_compare_invalid_versionstring[1.0] PASSED                       [ 21%]
tests/test_compare.py::test_should_not_allow_to_compare_invalid_versionstring[1.0.x] PASSED                     [ 22%]
tests/test_compare.py::test_should_not_allow_to_compare_version_with_int PASSED                                 [ 22%]
tests/test_compare.py::test_should_compare_prerelease_and_build_with_numbers PASSED                             [ 22%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[bump_build-args0-kwargs0] PASSED     [ 22%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[bump_major-args1-kwargs1] PASSED     [ 23%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[bump_minor-args2-kwargs2] PASSED     [ 23%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[bump_patch-args3-kwargs3] PASSED     [ 23%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[bump_prerelease-args4-kwargs4] PASSED [ 24%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[format_version-args5-kwargs5] PASSED [ 24%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[finalize_version-args6-kwargs6] PASSED [ 24%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[match-args7-kwargs7] PASSED          [ 25%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[parse-args8-kwargs8] PASSED          [ 25%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[parse_version_info-args9-kwargs9] PASSED [ 25%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[replace-args10-kwargs10] PASSED      [ 25%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[max_ver-args11-kwargs11] PASSED      [ 26%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[min_ver-args12-kwargs12] PASSED      [ 26%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[cmd_bump-args13-kwargs13] PASSED     [ 26%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[cmd_compare-args14-kwargs14] PASSED  [ 27%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[cmd_check-args15-kwargs15] PASSED    [ 27%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[cmd_nextver-args16-kwargs16] PASSED  [ 27%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[createparser-args17-kwargs17] PASSED [ 27%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[process-args18-kwargs18] PASSED      [ 28%]
tests/test_deprecated_functions.py::test_should_raise_deprecation_warnings[main-args19-kwargs19] PASSED         [ 28%]
tests/test_deprecated_functions.py::test_deprecated_deco_without_argument PASSED                                [ 28%]
tests/test_docstrings.py::test_fordocstrings[bump_build] PASSED                                                 [ 29%]
tests/test_docstrings.py::test_fordocstrings[bump_major] PASSED                                                 [ 29%]
tests/test_docstrings.py::test_fordocstrings[bump_minor] PASSED                                                 [ 29%]
tests/test_docstrings.py::test_fordocstrings[bump_patch] PASSED                                                 [ 29%]
tests/test_docstrings.py::test_fordocstrings[bump_prerelease] PASSED                                            [ 30%]
tests/test_docstrings.py::test_fordocstrings[cmd_bump] PASSED                                                   [ 30%]
tests/test_docstrings.py::test_fordocstrings[cmd_check] PASSED                                                  [ 30%]
tests/test_docstrings.py::test_fordocstrings[cmd_compare] PASSED                                                [ 31%]
tests/test_docstrings.py::test_fordocstrings[cmd_nextver] PASSED                                                [ 31%]
tests/test_docstrings.py::test_fordocstrings[compare] PASSED                                                    [ 31%]
tests/test_docstrings.py::test_fordocstrings[createparser] PASSED                                               [ 31%]
tests/test_docstrings.py::test_fordocstrings[finalize_version] PASSED                                           [ 32%]
tests/test_docstrings.py::test_fordocstrings[format_version] PASSED                                             [ 32%]
tests/test_docstrings.py::test_fordocstrings[main] PASSED                                                       [ 32%]
tests/test_docstrings.py::test_fordocstrings[match] PASSED                                                      [ 33%]
tests/test_docstrings.py::test_fordocstrings[max_ver] PASSED                                                    [ 33%]
tests/test_docstrings.py::test_fordocstrings[min_ver] PASSED                                                    [ 33%]
tests/test_docstrings.py::test_fordocstrings[parse] PASSED                                                      [ 33%]
tests/test_docstrings.py::test_fordocstrings[parse_version_info] PASSED                                         [ 34%]
tests/test_docstrings.py::test_fordocstrings[process] PASSED                                                    [ 34%]
tests/test_docstrings.py::test_fordocstrings[replace] PASSED                                                    [ 34%]
tests/test_format.py::test_should_finalize_version[1.2.3-1.2.3] PASSED                                          [ 35%]
tests/test_format.py::test_should_finalize_version[1.2.3-rc.5-1.2.3] PASSED                                     [ 35%]
tests/test_format.py::test_should_finalize_version[1.2.3+build.2-1.2.3] PASSED                                  [ 35%]
tests/test_format.py::test_should_finalize_version[1.2.3-rc.1+build.5-1.2.3] PASSED                             [ 35%]
tests/test_format.py::test_should_finalize_version[1.2.3-alpha-1.2.3] PASSED                                    [ 36%]
tests/test_format.py::test_should_finalize_version[1.2.0-1.2.0] PASSED                                          [ 36%]
tests/test_format.py::test_should_correctly_format_version PASSED                                               [ 36%]
tests/test_format.py::test_parse_method_for_version_info PASSED                                                 [ 37%]
tests/test_format.py::test_repr[version0-Version(major=1, minor=2, patch=3, prerelease=None, build=None)] PASSED [ 37%]
tests/test_format.py::test_repr[version1-Version(major=1, minor=2, patch=3, prerelease='r.1', build=None)] PASSED [ 37%]
tests/test_format.py::test_repr[version2-Version(major=1, minor=2, patch=3, prerelease='dev.1', build=None)] PASSED [ 37%]
tests/test_format.py::test_repr[version3-Version(major=1, minor=2, patch=3, prerelease='dev.1', build='b.1')] PASSED [ 38%]
tests/test_format.py::test_repr[version4-Version(major=1, minor=2, patch=3, prerelease='r.1', build='b.1')] PASSED [ 38%]
tests/test_format.py::test_repr[version5-Version(major=1, minor=2, patch=3, prerelease='r.1', build='build.1')] PASSED [ 38%]
tests/test_immutable.py::test_immutable_major PASSED                                                            [ 39%]
tests/test_immutable.py::test_immutable_minor PASSED                                                            [ 39%]
tests/test_immutable.py::test_immutable_patch PASSED                                                            [ 39%]
tests/test_immutable.py::test_immutable_prerelease PASSED                                                       [ 39%]
tests/test_immutable.py::test_immutable_build PASSED                                                            [ 40%]
tests/test_immutable.py::test_immutable_unknown_attribute PASSED                                                [ 40%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0+build.0-0-1] PASSED             [ 40%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0+build.0-1-2] PASSED             [ 41%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0+build.0-2-3] PASSED             [ 41%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0+build.0-3-rc.0] PASSED          [ 41%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0+build.0-4-build.0] PASSED       [ 41%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0-0-1] PASSED                     [ 42%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0-1-2] PASSED                     [ 42%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0-2-3] PASSED                     [ 42%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-rc.0-3-rc.0] PASSED                  [ 43%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-0-1] PASSED                          [ 43%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-1-2] PASSED                          [ 43%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.2.3-2-3] PASSED                          [ 43%]
tests/test_index.py::test_version_info_should_be_accessed_with_index[1.0.2-1-0] PASSED                          [ 44%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object0-expected0] PASSED [ 44%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object1-expected1] PASSED [ 44%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object2-expected2] PASSED [ 45%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object3-expected3] PASSED [ 45%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object4-expected4] PASSED [ 45%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0-slice_object5-expected5] PASSED [ 45%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0-slice_object6-expected6] PASSED [ 46%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0-slice_object7-expected7] PASSED [ 46%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-slice_object8-expected8] PASSED [ 46%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-slice_object9-expected9] PASSED [ 47%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-slice_object10-expected10] PASSED [ 47%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object11-expected11] PASSED [ 47%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object12-expected12] PASSED [ 47%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object13-expected13] PASSED [ 48%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.3-rc.0+build.0-slice_object14-expected14] PASSED [ 48%]
tests/test_index.py::test_version_info_should_be_accessed_with_slice_object[1.2.0-rc.0+build.0-slice_object15-expected15] PASSED [ 48%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-3] PASSED                                 [ 49%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-index1] PASSED                            [ 49%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-4] PASSED                                 [ 49%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-index3] PASSED                            [ 50%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-5] PASSED                                 [ 50%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-index5] PASSED                            [ 50%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-rc.0-5] PASSED                            [ 50%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-rc.0-index7] PASSED                       [ 51%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-rc.0-6] PASSED                            [ 51%]
tests/test_index.py::test_version_info_should_throw_index_error[1.2.3-rc.0-index9] PASSED                       [ 51%]
tests/test_index.py::test_version_info_should_throw_index_error_when_negative_index[1.2.3--1] PASSED            [ 52%]
tests/test_index.py::test_version_info_should_throw_index_error_when_negative_index[1.2.3--2] PASSED            [ 52%]
tests/test_index.py::test_version_info_should_throw_index_error_when_negative_index[1.2.3-index2] PASSED        [ 52%]
tests/test_index.py::test_version_info_should_throw_index_error_when_negative_index[1.2.3-index3] PASSED        [ 52%]
tests/test_index.py::test_version_info_should_throw_index_error_when_negative_index[1.2.3-index4] PASSED        [ 53%]
tests/test_match.py::test_should_match_simple PASSED                                                            [ 53%]
tests/test_match.py::test_should_no_match_simple PASSED                                                         [ 53%]
tests/test_match.py::test_should_match_not_equal[2.3.7-!=2.3.8-True] PASSED                                     [ 54%]
tests/test_match.py::test_should_match_not_equal[2.3.7-!=2.3.6-True] PASSED                                     [ 54%]
tests/test_match.py::test_should_match_not_equal[2.3.7-!=2.3.7-False] PASSED                                    [ 54%]
tests/test_match.py::test_should_match_equal_by_default[2.3.7-2.3.7-True] PASSED                                [ 54%]
tests/test_match.py::test_should_match_equal_by_default[2.3.6-2.3.6-True] PASSED                                [ 55%]
tests/test_match.py::test_should_match_equal_by_default[2.3.7-4.3.7-False] PASSED                               [ 55%]
tests/test_match.py::test_should_not_raise_value_error_for_expected_match_expression[2.3.7-<2.4.0-True] PASSED  [ 55%]
tests/test_match.py::test_should_not_raise_value_error_for_expected_match_expression[2.3.7->2.3.5-True] PASSED  [ 56%]
tests/test_match.py::test_should_not_raise_value_error_for_expected_match_expression[2.3.7-<=2.3.9-True] PASSED [ 56%]
tests/test_match.py::test_should_not_raise_value_error_for_expected_match_expression[2.3.7->=2.3.5-True] PASSED [ 56%]
tests/test_match.py::test_should_not_raise_value_error_for_expected_match_expression[2.3.7-==2.3.7-True] PASSED [ 56%]
tests/test_match.py::test_should_not_raise_value_error_for_expected_match_expression[2.3.7-!=2.3.7-False] PASSED [ 57%]
tests/test_match.py::test_should_raise_value_error_for_unexpected_match_expression[2.3.7-=2.3.7] PASSED         [ 57%]
tests/test_match.py::test_should_raise_value_error_for_unexpected_match_expression[2.3.7-~2.3.7] PASSED         [ 57%]
tests/test_match.py::test_should_raise_value_error_for_unexpected_match_expression[2.3.7-^2.3.7] PASSED         [ 58%]
tests/test_match.py::test_should_raise_value_error_for_invalid_match_expression[1.0.0-] PASSED                  [ 58%]
tests/test_match.py::test_should_raise_value_error_for_invalid_match_expression[1.0.0-!] PASSED                 [ 58%]
tests/test_max-min.py::test_should_get_max PASSED                                                               [ 58%]
tests/test_max-min.py::test_should_get_max_same PASSED                                                          [ 59%]
tests/test_max-min.py::test_should_get_min PASSED                                                               [ 59%]
tests/test_max-min.py::test_should_get_min_same PASSED                                                          [ 59%]
tests/test_max-min.py::test_prerelease_order[1.2.3-rc.2-1.2.3-rc.10-1.2.3-rc.2] PASSED                          [ 60%]
tests/test_max-min.py::test_prerelease_order[1.2.3-rc2-1.2.3-rc10-1.2.3-rc10] PASSED                            [ 60%]
tests/test_max-min.py::test_prerelease_order[1.2.3-Rc10-1.2.3-rc10-1.2.3-Rc10] PASSED                           [ 60%]
tests/test_max-min.py::test_prerelease_order[1.2.3-2-1.2.3-rc-1.2.3-2] PASSED                                   [ 60%]
tests/test_max-min.py::test_prerelease_order[1.2.3-rc.2.1-1.2.3-rc.2-1.2.3-rc.2] PASSED                         [ 61%]
tests/test_max-min.py::test_prerelease_order[1.2.3-1.2.3-1-1.2.3-1] PASSED                                      [ 61%]
tests/test_max-min.py::test_prerelease_order[1.0.0-alpha-1.0.0-alpha.1-1.0.0-alpha] PASSED                      [ 61%]
tests/test_parsing.py::test_should_parse_version[1.2.3-alpha.1.2+build.11.e0f985a-expected0] PASSED             [ 62%]
tests/test_parsing.py::test_should_parse_version[1.2.3-alpha-1+build.11.e0f985a-expected1] PASSED               [ 62%]
tests/test_parsing.py::test_should_parse_version[0.1.0-0f-expected2] PASSED                                     [ 62%]
tests/test_parsing.py::test_should_parse_version[0.0.0-0foo.1-expected3] PASSED                                 [ 62%]
tests/test_parsing.py::test_should_parse_version[0.0.0-0foo.1+build.1-expected4] PASSED                         [ 63%]
tests/test_parsing.py::test_should_parse_version_with_optional_minor_and_patch[1.2-alpha.1.2+build.11.e0f985a-expected0] PASSED [ 63%]
tests/test_parsing.py::test_should_parse_version_with_optional_minor_and_patch[1-alpha-1+build.11.e0f985a-expected1] PASSED [ 63%]
tests/test_parsing.py::test_should_parse_version_with_optional_minor_and_patch[0.1-0f-expected2] PASSED         [ 64%]
tests/test_parsing.py::test_should_parse_version_with_optional_minor_and_patch[0-0foo.1-expected3] PASSED       [ 64%]
tests/test_parsing.py::test_should_parse_version_with_optional_minor_and_patch[0-0foo.1+build.1-expected4] PASSED [ 64%]
tests/test_parsing.py::test_parse_version_info_str_hash PASSED                                                  [ 64%]
tests/test_parsing.py::test_should_parse_zero_prerelease[1.2.3-rc.0+build.0-expected0] PASSED                   [ 65%]
tests/test_parsing.py::test_should_parse_zero_prerelease[1.2.3-rc.0.0+build.0-expected1] PASSED                 [ 65%]
tests/test_parsing.py::test_should_raise_value_error_for_zero_prefixed_versions[01.2.3] PASSED                  [ 65%]
tests/test_parsing.py::test_should_raise_value_error_for_zero_prefixed_versions[1.02.3] PASSED                  [ 66%]
tests/test_parsing.py::test_should_raise_value_error_for_zero_prefixed_versions[1.2.03] PASSED                  [ 66%]
tests/test_parsing.py::test_equal_versions_have_equal_hashes PASSED                                             [ 66%]
tests/test_parsing.py::test_parse_method_for_version_info PASSED                                                [ 66%]
tests/test_parsing.py::test_next_version_with_invalid_parts PASSED                                              [ 67%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.0.4-rc.1-major-2.0.0] PASSED                        [ 67%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.1.0-rc.1-major-2.0.0] PASSED                        [ 67%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.1.4-rc.1-major-2.0.0] PASSED                        [ 68%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.2.3-major-2.0.0] PASSED                             [ 68%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.0.0-rc.1-major-1.0.0] PASSED                        [ 68%]
tests/test_parsing.py::test_next_version_with_versioninfo[0.2.0-rc.1-minor-0.2.0] PASSED                        [ 68%]
tests/test_parsing.py::test_next_version_with_versioninfo[0.2.5-rc.1-minor-0.3.0] PASSED                        [ 69%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.3.1-minor-1.4.0] PASSED                             [ 69%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.3.2-patch-1.3.3] PASSED                             [ 69%]
tests/test_parsing.py::test_next_version_with_versioninfo[0.1.5-rc.2-patch-0.1.5] PASSED                        [ 70%]
tests/test_parsing.py::test_next_version_with_versioninfo[0.1.4-prerelease-0.1.5-rc.1] PASSED                   [ 70%]
tests/test_parsing.py::test_next_version_with_versioninfo[0.1.5-rc.1-prerelease-0.1.5-rc.2] PASSED              [ 70%]
tests/test_parsing.py::test_next_version_with_versioninfo[0.2.0-rc.1-patch-0.2.0] PASSED                        [ 70%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.0.0-rc.1-patch-1.0.0] PASSED                        [ 71%]
tests/test_parsing.py::test_next_version_with_versioninfo[1.0.0-rc.1-minor-1.0.0] PASSED                        [ 71%]
tests/test_pysemver-cli.py::test_should_parse_cli_arguments[cli0-expected0] PASSED                              [ 71%]
tests/test_pysemver-cli.py::test_should_parse_cli_arguments[cli1-expected1] PASSED                              [ 72%]
tests/test_pysemver-cli.py::test_should_parse_cli_arguments[cli2-expected2] PASSED                              [ 72%]
tests/test_pysemver-cli.py::test_should_parse_cli_arguments[cli3-expected3] PASSED                              [ 72%]
tests/test_pysemver-cli.py::test_should_parse_cli_arguments[cli4-expected4] PASSED                              [ 72%]
tests/test_pysemver-cli.py::test_should_parse_cli_arguments[cli5-expected5] PASSED                              [ 73%]
tests/test_pysemver-cli.py::test_should_parse_cli_arguments[cli6-expected6] PASSED                              [ 73%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_bump-args0-expectation0] PASSED        [ 73%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_bump-args1-expectation1] PASSED        [ 74%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_bump-args2-expectation2] PASSED        [ 74%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_bump-args3-expectation3] PASSED        [ 74%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_bump-args4-expectation4] PASSED        [ 75%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_compare-args5-expectation5] PASSED     [ 75%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_compare-args6-expectation6] PASSED     [ 75%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_compare-args7-expectation7] PASSED     [ 75%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_check-args8-expectation8] PASSED       [ 76%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_check-args9-expectation9] PASSED       [ 76%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_nextver-args10-expectation10] PASSED   [ 76%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_nextver-args11-expectation11] PASSED   [ 77%]
tests/test_pysemver-cli.py::test_should_process_parsed_cli_arguments[cmd_nextver-args12-expectation12] PASSED   [ 77%]
tests/test_pysemver-cli.py::test_should_process_print PASSED                                                    [ 77%]
tests/test_pysemver-cli.py::test_should_process_raise_error PASSED                                              [ 77%]
tests/test_pysemver-cli.py::test_should_raise_systemexit_when_called_with_empty_arguments PASSED                [ 78%]
tests/test_pysemver-cli.py::test_should_raise_systemexit_when_bump_iscalled_with_empty_arguments PASSED         [ 78%]
tests/test_pysemver-cli.py::test_should_process_check_iscalled_with_valid_version PASSED                        [ 78%]
tests/test_pysemver-cli.py::test_main_file_should_call_cli_main[] PASSED                                        [ 79%]
tests/test_pysemver-cli.py::test_main_file_should_call_cli_main[semver] PASSED                                  [ 79%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-parts0-2.4.5] PASSED                  [ 79%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-parts1-2.4.5] PASSED                  [ 79%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-parts2-2.5.5] PASSED                  [ 80%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-parts3-3.2.5] PASSED                  [ 80%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-parts4-2.5.10] PASSED                 [ 80%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-parts5-2.5.10-rc1] PASSED             [ 81%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-parts6-2.5.10-rc1+b1] PASSED          [ 81%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-alpha.1.2-parts7-2.4.5-alpha.1.2] PASSED [ 81%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5-alpha.1.2-parts8-3.4.5-alpha.1.2+x1] PASSED [ 81%]
tests/test_replace.py::test_replace_method_replaces_requested_parts[3.4.5+build1-parts9-2.4.5+build1] PASSED    [ 82%]
tests/test_replace.py::test_replace_raises_TypeError_for_invalid_keyword_arg PASSED                             [ 82%]
tests/test_replace.py::test_should_return_versioninfo_with_replaced_parts[3.4.5-parts0-2.5.5] PASSED            [ 82%]
tests/test_replace.py::test_should_return_versioninfo_with_replaced_parts[3.4.5-parts1-2.5.10] PASSED           [ 83%]
tests/test_replace.py::test_should_return_versioninfo_with_replaced_parts[3.4.5-alpha.1.2-parts2-2.4.5-alpha.1.2] PASSED [ 83%]
tests/test_replace.py::test_should_return_versioninfo_with_replaced_parts[3.4.5-alpha.1.2-parts3-3.4.5-alpha.1.2+x1] PASSED [ 83%]
tests/test_replace.py::test_should_return_versioninfo_with_replaced_parts[3.4.5+build1-parts4-2.4.5+build1] PASSED [ 83%]
tests/test_replace.py::test_replace_raises_ValueError_for_non_numeric_values PASSED                             [ 84%]
tests/test_semver.py::test_should_private_increment_string[rc-rc] PASSED                                        [ 84%]
tests/test_semver.py::test_should_private_increment_string[rc.1-rc.2] PASSED                                    [ 84%]
tests/test_semver.py::test_should_private_increment_string[2x-3x] PASSED                                        [ 85%]
tests/test_semver.py::test_should_not_allow_negative_numbers[ver0] PASSED                                       [ 85%]
tests/test_semver.py::test_should_not_allow_negative_numbers[ver1] PASSED                                       [ 85%]
tests/test_semver.py::test_should_not_allow_negative_numbers[ver2] PASSED                                       [ 85%]
tests/test_semver.py::test_should_not_allow_negative_numbers[ver3] PASSED                                       [ 86%]
tests/test_semver.py::test_should_versioninfo_to_dict PASSED                                                    [ 86%]
tests/test_semver.py::test_should_versioninfo_to_tuple PASSED                                                   [ 86%]
tests/test_semver.py::test_version_info_should_be_iterable PASSED                                               [ 87%]
tests/test_semver.py::test_should_be_able_to_use_strings_as_major_minor_patch PASSED                            [ 87%]
tests/test_semver.py::test_using_non_numeric_string_as_major_minor_patch_throws PASSED                          [ 87%]
tests/test_semver.py::test_should_be_able_to_use_integers_as_prerelease_build PASSED                            [ 87%]
tests/test_semver.py::test_should_versioninfo_isvalid PASSED                                                    [ 88%]
tests/test_semver.py::test_versioninfo_compare_should_raise_when_passed_invalid_value PASSED                    [ 88%]
tests/test_semver.py::test_should_succeed_compatible_match[old0-new0] PASSED                                    [ 88%]
tests/test_semver.py::test_should_succeed_compatible_match[old1-new1] PASSED                                    [ 89%]
tests/test_semver.py::test_should_succeed_compatible_match[old2-new2] PASSED                                    [ 89%]
tests/test_semver.py::test_should_succeed_compatible_match[old3-new3] PASSED                                    [ 89%]
tests/test_semver.py::test_should_succeed_compatible_match[old4-new4] PASSED                                    [ 89%]
tests/test_semver.py::test_should_fail_compatible_match[old0-new0] PASSED                                       [ 90%]
tests/test_semver.py::test_should_fail_compatible_match[old1-new1] PASSED                                       [ 90%]
tests/test_semver.py::test_should_fail_compatible_match[old2-new2] PASSED                                       [ 90%]
tests/test_semver.py::test_should_fail_compatible_match[old3-new3] PASSED                                       [ 91%]
tests/test_semver.py::test_should_fail_compatible_match[old4-new4] PASSED                                       [ 91%]
tests/test_semver.py::test_should_fail_compatible_match[old5-new5] PASSED                                       [ 91%]
tests/test_semver.py::test_should_fail_compatible_match[old6-new6] PASSED                                       [ 91%]
tests/test_semver.py::test_should_fail_with_incompatible_type_for_compatible_match[wrongtype] PASSED            [ 92%]
tests/test_semver.py::test_should_fail_with_incompatible_type_for_compatible_match[wrongtype1] PASSED           [ 92%]
tests/test_semver.py::test_should_fail_with_incompatible_type_for_compatible_match[wrongtype2] PASSED           [ 92%]
tests/test_semver.py::test_should_succeed_with_compatible_subclass_for_is_compatible PASSED                     [ 93%]
tests/test_subclass.py::test_subclass_from_versioninfo PASSED                                                   [ 93%]
tests/test_typeerror-274.py::test_should_work_with_string_and_bytes PASSED                                      [ 93%]
tests/test_typeerror-274.py::test_should_not_work_with_invalid_args PASSED                                      [ 93%]
docs/advanced/convert-pypi-to-semver.rst::convert-pypi-to-semver.rst PASSED                                     [ 94%]
docs/advanced/create-subclasses-from-version.rst::create-subclasses-from-version.rst PASSED                     [ 94%]
docs/advanced/deal-with-invalid-versions.rst::deal-with-invalid-versions.rst PASSED                             [ 94%]
docs/contribute/doc-semver.rst::doc-semver.rst PASSED                                                           [ 95%]
docs/migration/replace-deprecated-functions.rst::replace-deprecated-functions.rst PASSED                        [ 95%]
docs/usage/access-parts-of-a-version.rst::access-parts-of-a-version.rst PASSED                                  [ 95%]
docs/usage/access-parts-through-index.rst::access-parts-through-index.rst PASSED                                [ 95%]
docs/usage/check-compatible-semver-version.rst::check-compatible-semver-version.rst PASSED                      [ 96%]
docs/usage/check-valid-semver-version.rst::check-valid-semver-version.rst PASSED                                [ 96%]
docs/usage/compare-versions-through-expression.rst::compare-versions-through-expression.rst PASSED              [ 96%]
docs/usage/compare-versions.rst::compare-versions.rst PASSED                                                    [ 97%]
docs/usage/convert-version-into-different-types.rst::convert-version-into-different-types.rst PASSED            [ 97%]
docs/usage/create-a-version.rst::create-a-version.rst PASSED                                                    [ 97%]
docs/usage/determine-version-equality.rst::determine-version-equality.rst PASSED                                [ 97%]
docs/usage/get-min-and-max-of-multiple-versions.rst::get-min-and-max-of-multiple-versions.rst PASSED            [ 98%]
docs/usage/increase-parts-of-a-version_prereleases.rst::increase-parts-of-a-version_prereleases.rst PASSED      [ 98%]
docs/usage/parse-version-string.rst::parse-version-string.rst PASSED                                            [ 98%]
docs/usage/raise-parts-of-a-version.rst::raise-parts-of-a-version.rst PASSED                                    [ 99%]
docs/usage/replace-parts-of-a-version.rst::replace-parts-of-a-version.rst PASSED                                [ 99%]
docs/usage/semver-version.rst::semver-version.rst PASSED                                                        [ 99%]
docs/usage/semver_org-version.rst::semver_org-version.rst PASSED                                                [100%]

================================================== warnings summary ===================================================
tests/test_compare.py::test_should_get_less[1.0.0-2.0.0]
tests/test_compare.py::test_should_get_less[1.0.0-alpha-1.0.0-alpha.1]
tests/test_compare.py::test_should_get_less[1.0.0-alpha.1-1.0.0-alpha.beta]
tests/test_compare.py::test_should_get_less[1.0.0-alpha.beta-1.0.0-beta]
tests/test_compare.py::test_should_get_less[1.0.0-beta-1.0.0-beta.2]
tests/test_compare.py::test_should_get_less[1.0.0-beta.2-1.0.0-beta.11]
tests/test_compare.py::test_should_get_less[1.0.0-beta.11-1.0.0-rc.1]
tests/test_compare.py::test_should_get_less[1.0.0-rc.1-1.0.0]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:21: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == -1

tests/test_compare.py::test_should_get_greater[2.0.0-1.0.0]
tests/test_compare.py::test_should_get_greater[1.0.0-alpha.1-1.0.0-alpha]
tests/test_compare.py::test_should_get_greater[1.0.0-alpha.beta-1.0.0-alpha.1]
tests/test_compare.py::test_should_get_greater[1.0.0-beta-1.0.0-alpha.beta]
tests/test_compare.py::test_should_get_greater[1.0.0-beta.2-1.0.0-beta]
tests/test_compare.py::test_should_get_greater[1.0.0-beta.11-1.0.0-beta.2]
tests/test_compare.py::test_should_get_greater[1.0.0-rc.1-1.0.0-beta.11]
tests/test_compare.py::test_should_get_greater[1.0.0-1.0.0-rc.1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:38: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == 1

tests/test_compare.py::test_should_raise_value_error_for_invalid_value[foo-bar]
tests/test_compare.py::test_should_raise_value_error_for_invalid_value[1.0-1.0.0]
tests/test_compare.py::test_should_raise_value_error_for_invalid_value[1.x-1.0.0]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:46: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    compare(left, right)

tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:68: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert (

tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
tests/test_compare.py::test_should_follow_specification_comparison
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:71: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert (

tests/test_compare.py::test_should_compare_rc_builds[1.0.0-beta.2-1.0.0-beta.11]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:78: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == -1

tests/test_compare.py::test_should_compare_release_candidate_with_release[1.0.0-rc.1-1.0.0]
tests/test_compare.py::test_should_compare_release_candidate_with_release[1.0.0-rc.1+build.1-1.0.0]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:85: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == -1

tests/test_compare.py::test_should_say_equal_versions_are_equal[2.0.0-2.0.0]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9-rc.1-1.1.9-rc.1]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9+build.1-1.1.9+build.1]
tests/test_compare.py::test_should_say_equal_versions_are_equal[1.1.9-rc.1+build.1-1.1.9-rc.1+build.1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:98: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == 0

tests/test_compare.py::test_should_compare_versions_with_build_and_release[1.1.9-rc.1-1.1.9-rc.1+build.1-0]
tests/test_compare.py::test_should_compare_versions_with_build_and_release[1.1.9-rc.1-1.1.9+build.1--1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:106: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == expected

tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-0]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0-alpha.1+build.1-1.0.0-alpha.1-0]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-alpha.1-1]
tests/test_compare.py::test_should_ignore_builds_on_compare[1.0.0+build.1-1.0.0-alpha.1+build.1-1]
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:119: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare(left, right) == expected

tests/test_compare.py::test_should_get_more_rc1
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:123: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare("1.0.0-rc1", "1.0.0-rc0") == 1

tests/test_compare.py::test_should_compare_prerelease_with_numbers_and_letters
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:130: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    assert compare("1.9.1-1unms", "1.9.1+1") == -1

tests/test_compare.py::test_should_not_allow_to_compare_version_with_int
  /home/tom/repos/GH/tomschr/python-semver/tests/test_compare.py:295: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    semver.compare(1)

tests/test_typeerror-274.py::test_should_work_with_string_and_bytes
  /home/tom/repos/GH/tomschr/python-semver/tests/test_typeerror-274.py:6: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    result = semver.compare("1.1.0", b"1.2.2")

tests/test_typeerror-274.py::test_should_work_with_string_and_bytes
  /home/tom/repos/GH/tomschr/python-semver/tests/test_typeerror-274.py:8: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.
    result = semver.compare(b"1.1.0", "1.2.2")

docs/usage/compare-versions.rst::compare-versions.rst
  <doctest compare-versions.rst[0]>:1: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.

docs/usage/compare-versions.rst::compare-versions.rst
  <doctest compare-versions.rst[1]>:1: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.

docs/usage/compare-versions.rst::compare-versions.rst
  <doctest compare-versions.rst[2]>:1: PendingDeprecationWarning: Function 'semver.compare' is deprecated. Deprecated since version 3.0.0.  Still under investigation, see #258. Use the respective 'semver.Version.compare' instead.

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform linux, python 3.10.9-final-0 -----------
Name                        Stmts   Miss Branch BrPart   Cover   Missing
------------------------------------------------------------------------
src/semver/__about__.py         7      0      0      0  100.0%
src/semver/__init__.py          4      0      0      0  100.0%
src/semver/__main__.py          9      0      2      0  100.0%
src/semver/_deprecated.py      81      0      8      0  100.0%
src/semver/_types.py            9      0      0      0  100.0%
src/semver/cli.py              60      0     10      0  100.0%
src/semver/version.py         274      0    104      0  100.0%
------------------------------------------------------------------------
TOTAL                         444      0    124      0  100.0%

========================================== 348 passed, 52 warnings in 0.52s ===========================================
  py310: OK (0.70=setup[0.02]+cmd[0.68] seconds)
  congratulations :) (0.73 seconds)

from python-semver.

tomschr avatar tomschr commented on June 14, 2024

I think I close it for the time being. If you have anything else, feel free to comment or reopen it.

Thank you!

from python-semver.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.