diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/mitmproxy/addons/test_view.py | 50 | ||||
-rw-r--r-- | test/mitmproxy/net/websockets/test_frame.py | 2 | ||||
-rw-r--r-- | test/mitmproxy/test_command.py | 2 | ||||
-rw-r--r-- | test/mitmproxy/test_stateobject.py | 2 | ||||
-rw-r--r-- | test/mitmproxy/test_types.py | 2 | ||||
-rw-r--r-- | test/pathod/language/test_websockets.py | 6 | ||||
-rw-r--r-- | test/release/test_cibuild.py | 91 |
7 files changed, 114 insertions, 41 deletions
diff --git a/test/mitmproxy/addons/test_view.py b/test/mitmproxy/addons/test_view.py index bd724950..976c14b7 100644 --- a/test/mitmproxy/addons/test_view.py +++ b/test/mitmproxy/addons/test_view.py @@ -107,13 +107,12 @@ def test_simple(): def test_filter(): v = view.View() - f = flowfilter.parse("~m get") v.request(tft(method="get")) v.request(tft(method="put")) v.request(tft(method="get")) v.request(tft(method="put")) assert(len(v)) == 4 - v.set_filter(f) + v.set_filter_cmd("~m get") assert [i.request.method for i in v] == ["GET", "GET"] assert len(v._store) == 4 v.set_filter(None) @@ -124,6 +123,9 @@ def test_filter(): v.toggle_marked() assert len(v) == 4 + with pytest.raises(exceptions.CommandError): + v.set_filter_cmd("~notafilter regex") + v[1].marked = True v.toggle_marked() assert len(v) == 1 @@ -303,23 +305,26 @@ def test_setgetval(): def test_order(): v = view.View() - with taddons.context(v) as tctx: - v.request(tft(method="get", start=1)) - v.request(tft(method="put", start=2)) - v.request(tft(method="get", start=3)) - v.request(tft(method="put", start=4)) - assert [i.request.timestamp_start for i in v] == [1, 2, 3, 4] - - tctx.configure(v, view_order="method") - assert [i.request.method for i in v] == ["GET", "GET", "PUT", "PUT"] - v.set_reversed(True) - assert [i.request.method for i in v] == ["PUT", "PUT", "GET", "GET"] + v.request(tft(method="get", start=1)) + v.request(tft(method="put", start=2)) + v.request(tft(method="get", start=3)) + v.request(tft(method="put", start=4)) + assert [i.request.timestamp_start for i in v] == [1, 2, 3, 4] + + v.set_order("method") + assert v.get_order() == "method" + assert [i.request.method for i in v] == ["GET", "GET", "PUT", "PUT"] + v.set_reversed(True) + assert [i.request.method for i in v] == ["PUT", "PUT", "GET", "GET"] - tctx.configure(v, view_order="time") - assert [i.request.timestamp_start for i in v] == [4, 3, 2, 1] + v.set_order("time") + assert v.get_order() == "time" + assert [i.request.timestamp_start for i in v] == [4, 3, 2, 1] - v.set_reversed(False) - assert [i.request.timestamp_start for i in v] == [1, 2, 3, 4] + v.set_reversed(False) + assert [i.request.timestamp_start for i in v] == [1, 2, 3, 4] + with pytest.raises(exceptions.CommandError): + v.set_order("not_an_order") def test_reversed(): @@ -551,6 +556,17 @@ def test_settings(): assert not v.settings.keys() +def test_properties(): + v = view.View() + f = tft() + v.request(f) + assert v.get_length() == 1 + assert not v.get_marked() + v.toggle_marked() + assert v.get_length() == 0 + assert v.get_marked() + + def test_configure(): v = view.View() with taddons.context(v) as tctx: diff --git a/test/mitmproxy/net/websockets/test_frame.py b/test/mitmproxy/net/websockets/test_frame.py index 2a5bd556..f5c29c21 100644 --- a/test/mitmproxy/net/websockets/test_frame.py +++ b/test/mitmproxy/net/websockets/test_frame.py @@ -122,7 +122,7 @@ class TestFrameHeader: f = websockets.FrameHeader(masking_key=b"foob", mask=0) assert not f.mask - assert f.masking_key + assert not f.masking_key class TestFrame: diff --git a/test/mitmproxy/test_command.py b/test/mitmproxy/test_command.py index 029dbafd..d9dcf5f9 100644 --- a/test/mitmproxy/test_command.py +++ b/test/mitmproxy/test_command.py @@ -313,7 +313,7 @@ def test_typename(): class DummyConsole: - @command.command("view.resolve") + @command.command("view.flows.resolve") def resolve(self, spec: str) -> typing.Sequence[flow.Flow]: n = int(spec) return [tflow.tflow(resp=True)] * n diff --git a/test/mitmproxy/test_stateobject.py b/test/mitmproxy/test_stateobject.py index a642e023..a2df57fc 100644 --- a/test/mitmproxy/test_stateobject.py +++ b/test/mitmproxy/test_stateobject.py @@ -125,7 +125,7 @@ def test_any(): assert a.x == b.x a = TAny(object()) - with pytest.raises(AssertionError): + with pytest.raises(ValueError): a.get_state() diff --git a/test/mitmproxy/test_types.py b/test/mitmproxy/test_types.py index 35ff3241..571985fb 100644 --- a/test/mitmproxy/test_types.py +++ b/test/mitmproxy/test_types.py @@ -146,7 +146,7 @@ def test_strseq(): class DummyConsole: - @command.command("view.resolve") + @command.command("view.flows.resolve") def resolve(self, spec: str) -> typing.Sequence[flow.Flow]: if spec == "err": raise mitmproxy.exceptions.CommandError() diff --git a/test/pathod/language/test_websockets.py b/test/pathod/language/test_websockets.py index ed766bca..64ff024c 100644 --- a/test/pathod/language/test_websockets.py +++ b/test/pathod/language/test_websockets.py @@ -123,12 +123,6 @@ class TestWebsocketFrame: assert not frm.header.mask assert not frm.header.masking_key - frm = self.fr("wf:b'foo':-mask:k'abcd'", is_client=True) - assert not frm.header.mask - # We're reading back a corrupted frame - the first 3 characters of the - # mask is mis-interpreted as the payload - assert frm.payload == b"abc" - def test_knone(self): with pytest.raises(Exception, match="Expected 4 bytes"): self.fr("wf:b'foo':mask:knone") 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() |