diff options
author | Aldo Cortesi <aldo@corte.si> | 2018-05-25 08:29:24 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-05-25 08:29:24 +1200 |
commit | 66d612eeca1c7cb13dbd836336dc06826ba63b70 (patch) | |
tree | 54c6d23f0112b33635e257c54e92f8c5b750145d /test/release/test_cibuild.py | |
parent | f910f361a07cc6d7efda280a698be1ac59cb1fa8 (diff) | |
parent | fdf0d9974e3216142c27d888d0eb7fdf1e832d73 (diff) | |
download | mitmproxy-66d612eeca1c7cb13dbd836336dc06826ba63b70.tar.gz mitmproxy-66d612eeca1c7cb13dbd836336dc06826ba63b70.tar.bz2 mitmproxy-66d612eeca1c7cb13dbd836336dc06826ba63b70.zip |
Merge pull request #3152 from mitmproxy/cibuild
Tame cibuild (somewhat)
Diffstat (limited to 'test/release/test_cibuild.py')
-rw-r--r-- | test/release/test_cibuild.py | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py new file mode 100644 index 00000000..71395c6d --- /dev/null +++ b/test/release/test_cibuild.py @@ -0,0 +1,168 @@ +import os +import io + +import pytest + +from release import cibuild + + +def test_buildenviron_live(): + be = cibuild.BuildEnviron.from_env() + assert be.release_dir + + +def test_buildenviron_common(): + be = cibuild.BuildEnviron( + system = "Linux", + root_dir = "/foo", + + travis_tag = "v0.0.1", + travis_branch = "v0.x", + ) + assert be.release_dir == os.path.join(be.root_dir, "release") + assert be.dist_dir == os.path.join(be.root_dir, "release", "dist") + assert be.build_dir == os.path.join(be.root_dir, "release", "build") + assert be.is_pull_request is False + assert not be.has_docker_creds + + cs = io.StringIO() + be.dump_info(cs) + assert cs.getvalue() + + be = cibuild.BuildEnviron( + system = "Unknown", + root_dir = "/foo", + ) + with pytest.raises(cibuild.BuildError): + be.version + with pytest.raises(cibuild.BuildError): + be.platform_tag + + +def test_buildenviron_pr(): + # Simulates a PR. We build everything, but don't have access to secret + # credential env variables. + be = cibuild.BuildEnviron( + travis_tag = "", + travis_branch = "master", + travis_pull_request = "true", + + should_build_wheel = True, + should_build_pyinstaller = True, + should_build_docker = True, + ) + assert be.is_pull_request + + # Mini test for appveyor + be = cibuild.BuildEnviron( + appveyor_pull_request_number = "xxxx", + ) + assert be.is_pull_request + + +def test_buildenviron_commit(): + # Simulates an ordinary commit on the master branch. + be = cibuild.BuildEnviron( + travis_tag = "", + travis_branch = "master", + travis_pull_request = "false", + + should_build_wheel = True, + should_build_pyinstaller = True, + should_build_docker = True, + docker_username = "foo", + docker_password = "bar", + ) + assert be.docker_tag == "dev" + assert be.should_upload_docker + assert not be.should_upload_pypi + assert be.should_upload_docker + + +def test_buildenviron_rleasetag(): + # Simulates a tagged release on a release branch. + be = cibuild.BuildEnviron( + system = "Linux", + root_dir = "/foo", + + travis_tag = "v0.0.1", + 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 == "v0.0.1" + assert be.branch == "v0.x" + assert be.version == "0.0.1" + assert be.upload_dir == "0.0.1" + assert be.docker_tag == "0.0.1" + assert be.should_upload_pypi + assert be.should_upload_docker + + +def test_buildenviron_branch(): + # Simulates a development branch on the main repo + be = cibuild.BuildEnviron( + system = "Linux", + root_dir = "/foo", + + travis_tag = "", + travis_branch = "mybranch", + + 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 == "mybranch" + assert be.version == "mybranch" + assert be.upload_dir == "branches/mybranch" + assert not be.should_upload_pypi + assert not be.should_upload_docker + + +def test_buildenviron_osx(tmpdir): + be = cibuild.BuildEnviron( + system = "Darwin", + root_dir = "/foo", + + travis_tag = "v0.0.1", + travis_branch = "v0.x", + ) + assert be.platform_tag == "osx" + assert be.bdists == { + "mitmproxy": ["mitmproxy", "mitmdump", "mitmweb"], + "pathod": ["pathoc", "pathod"], + } + assert be.archive_name("mitmproxy") == "mitmproxy-0.0.1-osx.tar.gz" + + a = be.archive(os.path.join(tmpdir, "arch")) + assert a + a.close() + + +def test_buildenviron_windows(tmpdir): + be = cibuild.BuildEnviron( + system = "Windows", + root_dir = "/foo", + + travis_tag = "v0.0.1", + travis_branch = "v0.x", + ) + assert be.platform_tag == "windows" + assert be.bdists == { + "mitmproxy": ["mitmdump", "mitmweb"], + "pathod": ["pathoc", "pathod"], + } + assert be.archive_name("mitmproxy") == "mitmproxy-0.0.1-windows.zip" + + a = be.archive(os.path.join(tmpdir, "arch")) + assert a + a.close()
\ No newline at end of file |