diff options
Diffstat (limited to 'test/release/test_cibuild.py')
-rw-r--r-- | test/release/test_cibuild.py | 91 |
1 files changed, 77 insertions, 14 deletions
diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py index efa2f072..cfa24e63 100644 --- a/test/release/test_cibuild.py +++ b/test/release/test_cibuild.py @@ -36,6 +36,14 @@ def test_buildenviron_common(): with pytest.raises(cibuild.BuildError): be.platform_tag + with pytest.raises(ValueError, match="TRAVIS_TAG"): + be = cibuild.BuildEnviron( + system="Linux", + root_dir="/foo", + travis_tag="one", + travis_branch="two", + ) + def test_buildenviron_pr(): # Simulates a PR. We build everything, but don't have access to secret @@ -56,6 +64,7 @@ def test_buildenviron_pr(): ) assert be.is_pull_request assert not be.is_prod_release + assert not be.is_maintenance_branch def test_buildenviron_commit(): @@ -75,6 +84,7 @@ def test_buildenviron_commit(): assert not be.should_upload_pypi assert be.should_upload_docker assert not be.is_prod_release + assert not be.is_maintenance_branch def test_buildenviron_releasetag(): @@ -82,8 +92,8 @@ def test_buildenviron_releasetag(): be = cibuild.BuildEnviron( system="Linux", root_dir="/foo", - travis_tag="0.0.1", - travis_branch="v0.x", + travis_tag="v0.0.1", + travis_branch="v0.0.1", should_build_wheel=True, should_build_docker=True, should_build_pyinstaller=True, @@ -91,18 +101,44 @@ def test_buildenviron_releasetag(): docker_username="foo", docker_password="bar", ) - assert be.tag == "0.0.1" - assert be.branch == "v0.x" + assert be.tag == "v0.0.1" + assert be.branch == "v0.0.1" assert be.version == "0.0.1" assert be.upload_dir == "0.0.1" assert be.docker_tag == "mitmproxy/mitmproxy:0.0.1" assert be.should_upload_pypi assert be.should_upload_docker assert be.is_prod_release + assert not be.is_maintenance_branch + + +def test_buildenviron_namedtag(): + # Simulates a non-release tag on a branch. + be = cibuild.BuildEnviron( + system="Linux", + root_dir="/foo", + travis_tag="anyname", + travis_branch="anyname", + should_build_wheel=True, + should_build_docker=True, + should_build_pyinstaller=True, + has_twine_creds=True, + docker_username="foo", + docker_password="bar", + ) + assert be.tag == "anyname" + assert be.branch == "anyname" + assert be.version == "anyname" + assert be.upload_dir == "anyname" + assert be.docker_tag == "mitmproxy/mitmproxy:anyname" + assert not be.should_upload_pypi + assert not be.should_upload_docker + assert not be.is_prod_release + assert not be.is_maintenance_branch -def test_buildenviron_branch(): - # Simulates a development branch on the main repo +def test_buildenviron_dev_branch(): + # Simulates a commit on a development branch on the main repo be = cibuild.BuildEnviron( system="Linux", root_dir="/foo", @@ -121,6 +157,30 @@ def test_buildenviron_branch(): assert be.upload_dir == "branches/mybranch" assert not be.should_upload_pypi assert not be.should_upload_docker + assert not be.is_maintenance_branch + + +def test_buildenviron_maintenance_branch(): + # Simulates a commit on a release maintenance branch on the main repo + be = cibuild.BuildEnviron( + system="Linux", + root_dir="/foo", + travis_tag="", + travis_branch="v0.x", + should_build_wheel=True, + should_build_docker=True, + should_build_pyinstaller=True, + has_twine_creds=True, + docker_username="foo", + docker_password="bar", + ) + assert be.tag == "" + assert be.branch == "v0.x" + assert be.version == "v0.x" + assert be.upload_dir == "branches/v0.x" + assert not be.should_upload_pypi + assert not be.should_upload_docker + assert be.is_maintenance_branch def test_buildenviron_osx(tmpdir): @@ -128,7 +188,7 @@ def test_buildenviron_osx(tmpdir): system="Darwin", root_dir="/foo", travis_tag="0.0.1", - travis_branch="v0.x", + travis_branch="0.0.1", ) assert be.platform_tag == "osx" assert be.bdists == { @@ -146,8 +206,8 @@ def test_buildenviron_windows(tmpdir): be = cibuild.BuildEnviron( system="Windows", root_dir="/foo", - travis_tag="0.0.1", - travis_branch="v0.x", + travis_tag="v0.0.1", + travis_branch="v0.0.1", ) assert be.platform_tag == "windows" assert be.bdists == { @@ -163,18 +223,21 @@ def test_buildenviron_windows(tmpdir): @pytest.mark.parametrize("version, tag, ok", [ ("3.0.0.dev", "", True), # regular snapshot - ("3.0.0.dev", "3.0.0", False), # forgot to remove ".dev" on bump + ("3.0.0.dev", "v3.0.0", False), # forgot to remove ".dev" on bump ("3.0.0", "", False), # forgot to re-add ".dev" - ("3.0.0", "4.0.0", False), # version mismatch - ("3.0.0", "3.0.0", True), # regular release - ("3.0.0.rc1", "3.0.0.rc1", False), # non-canonical. + ("3.0.0", "v4.0.0", False), # version mismatch + ("3.0.0", "v3.0.0", True), # regular release + ("3.0.0.rc1", "v3.0.0.rc1", False), # non-canonical. + ("3.0.0.dev", "anyname", True), # tagged test/dev release + ("3.0.0", "3.0.0", False), # tagged, but without v prefix ]) def test_buildenviron_check_version(version, tag, ok, tmpdir): tmpdir.mkdir("mitmproxy").join("version.py").write(f'VERSION = "{version}"') be = cibuild.BuildEnviron( root_dir=tmpdir, - travis_tag=tag + travis_tag=tag, + travis_branch=tag or "branch", ) if ok: be.check_version() |