aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/mitmproxy/addons/test_view.py50
-rw-r--r--test/mitmproxy/net/websockets/test_frame.py2
-rw-r--r--test/mitmproxy/test_command.py2
-rw-r--r--test/mitmproxy/test_stateobject.py2
-rw-r--r--test/mitmproxy/test_types.py2
-rw-r--r--test/pathod/language/test_websockets.py6
-rw-r--r--test/release/test_cibuild.py91
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()