From 8fceaca6b8a219cce6e42a05a72eb8cd80565c89 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 24 May 2018 11:06:05 +1200 Subject: cibuild: Consolidate build environment and add tests --- test/release/test_cibuild.py | 95 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 test/release/test_cibuild.py (limited to 'test') diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py new file mode 100644 index 00000000..51aa0f7e --- /dev/null +++ b/test/release/test_cibuild.py @@ -0,0 +1,95 @@ +import os +import io +from release import cibuild + + +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 + + cs = io.StringIO() + be.dump_info(cs) + assert cs.getvalue() + + +def test_buildenviron_pr(): + be = cibuild.BuildEnviron( + travis_tag = "v0.0.1", + travis_branch = "v0.x", + travis_pull_request = "true", + ) + assert be.is_pull_request + + be = cibuild.BuildEnviron( + appveyor_pull_request_number = "xxxx", + ) + assert be.is_pull_request + + +def test_buildenviron_tag(): + be = cibuild.BuildEnviron( + system = "Linux", + root_dir = "/foo", + + travis_tag = "v0.0.1", + travis_branch = "v0.x", + ) + assert be.tag == "v0.0.1" + assert be.branch == "v0.x" + assert be.version == "0.0.1" + assert be.upload_dir == "0.0.1" + + +def test_buildenviron_branch(): + be = cibuild.BuildEnviron( + system = "Linux", + root_dir = "/foo", + + travis_tag = "", + travis_branch = "v0.x", + ) + assert be.tag == "" + assert be.branch == "v0.x" + assert be.version == "0.x" + assert be.upload_dir == "branches/0.x" + + +def test_buildenviron_osx(): + 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" + + +def test_buildenviron_windows(): + 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" \ No newline at end of file -- cgit v1.2.3 From bae4a3393f4fd9cccc229e4b9c3d997fe7cfb4c1 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 24 May 2018 17:10:50 +1200 Subject: release: include release directory in coverage With lots of exclusions for now --- test/release/test_cibuild.py | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'test') diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py index 51aa0f7e..23b8e6cd 100644 --- a/test/release/test_cibuild.py +++ b/test/release/test_cibuild.py @@ -1,8 +1,16 @@ 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", @@ -15,11 +23,21 @@ def test_buildenviron_common(): 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(): be = cibuild.BuildEnviron( @@ -63,7 +81,7 @@ def test_buildenviron_branch(): assert be.upload_dir == "branches/0.x" -def test_buildenviron_osx(): +def test_buildenviron_osx(tmpdir): be = cibuild.BuildEnviron( system = "Darwin", root_dir = "/foo", @@ -78,8 +96,12 @@ def test_buildenviron_osx(): } 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(): + +def test_buildenviron_windows(tmpdir): be = cibuild.BuildEnviron( system = "Windows", root_dir = "/foo", @@ -92,4 +114,8 @@ def test_buildenviron_windows(): "mitmproxy": ["mitmdump", "mitmweb"], "pathod": ["pathoc", "pathod"], } - assert be.archive_name("mitmproxy") == "mitmproxy-0.0.1-windows.zip" \ No newline at end of file + 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 -- cgit v1.2.3 From 0afff3a952e85401c41efc0e157ab07d3b985061 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 24 May 2018 21:59:45 +1200 Subject: cibuild: add docker tag calculation to environ --- test/release/test_cibuild.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'test') diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py index 23b8e6cd..a60f101f 100644 --- a/test/release/test_cibuild.py +++ b/test/release/test_cibuild.py @@ -53,6 +53,14 @@ def test_buildenviron_pr(): assert be.is_pull_request +def test_buildenviron_commit(): + be = cibuild.BuildEnviron( + travis_branch = "master", + travis_pull_request = "false", + ) + assert be.docker_tag == "dev" + + def test_buildenviron_tag(): be = cibuild.BuildEnviron( system = "Linux", @@ -65,6 +73,7 @@ def test_buildenviron_tag(): 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" def test_buildenviron_branch(): -- cgit v1.2.3 From c91b511bc7cca6a04237d30db1845ddc232aff64 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 24 May 2018 22:15:55 +1200 Subject: cibuild: extract upload conditions --- test/release/test_cibuild.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'test') diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py index a60f101f..2df5b4a0 100644 --- a/test/release/test_cibuild.py +++ b/test/release/test_cibuild.py @@ -59,21 +59,28 @@ def test_buildenviron_commit(): travis_pull_request = "false", ) assert be.docker_tag == "dev" + assert be.should_upload_docker + assert not be.should_upload_pypi -def test_buildenviron_tag(): +def test_buildenviron_rleasetag(): 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, ) 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 def test_buildenviron_branch(): -- cgit v1.2.3 From e9b19dba8aa204ead6092fbb901dadb5be8df72a Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 24 May 2018 22:32:31 +1200 Subject: cibuild: fix docker upload condition, expand tests --- test/release/test_cibuild.py | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'test') diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py index 2df5b4a0..2b469d1b 100644 --- a/test/release/test_cibuild.py +++ b/test/release/test_cibuild.py @@ -40,13 +40,20 @@ def test_buildenviron_common(): 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 = "v0.0.1", travis_branch = "v0.x", 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", ) @@ -54,26 +61,39 @@ def test_buildenviron_pr(): 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" @@ -81,20 +101,31 @@ def test_buildenviron_rleasetag(): 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 = "v0.x", + 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 == "v0.x" - assert be.version == "0.x" - assert be.upload_dir == "branches/0.x" + 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): -- cgit v1.2.3 From fdf0d9974e3216142c27d888d0eb7fdf1e832d73 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Thu, 24 May 2018 22:58:33 +1200 Subject: cibuild: more accurate PR test, better dump output --- test/release/test_cibuild.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/release/test_cibuild.py b/test/release/test_cibuild.py index 2b469d1b..71395c6d 100644 --- a/test/release/test_cibuild.py +++ b/test/release/test_cibuild.py @@ -43,8 +43,8 @@ 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 = "v0.0.1", - travis_branch = "v0.x", + travis_tag = "", + travis_branch = "master", travis_pull_request = "true", should_build_wheel = True, -- cgit v1.2.3