From b91bd170d7bd716d65dd94ebc8bda68704b74e73 Mon Sep 17 00:00:00 2001 From: Floris Bruynooghe Date: Fri, 15 Oct 2021 12:02:37 +0200 Subject: [PATCH 1/2] Bump python deps The old version of pytest breaks with python 3.10 which changed a little how code object internals work. Since python 3.10 is now released it starts being used in CI. --- tests/requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/requirements.txt b/tests/requirements.txt index 440b71546d..fcbf849f66 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,3 +1,3 @@ -black==19.10b0 -pytest==5.4.1 -pytest-httpserver==1.0.0 +black==21.9b0 +pytest==6.2.5 +pytest-httpserver==1.0.1 From 762099e70f9891b3dc31e0694e9724085408ab16 Mon Sep 17 00:00:00 2001 From: Floris Bruynooghe Date: Fri, 15 Oct 2021 12:06:18 +0200 Subject: [PATCH 2/2] New black, new rules --- tests/__init__.py | 13 ++++- tests/assertions.py | 4 +- tests/cmake.py | 8 ++- tests/test_integration_crashpad.py | 5 +- tests/test_integration_http.py | 94 +++++++++++++++++++++++------- tests/test_integration_stdout.py | 15 +++-- 6 files changed, 108 insertions(+), 31 deletions(-) diff --git a/tests/__init__.py b/tests/__init__.py index a995441a09..02f6146644 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -20,7 +20,13 @@ def make_dsn(httpserver, auth="uiaeosnrtdy", id=123456): # after a timeout of 2 seconds, falling back to the ipv4 loopback instead. host = url.netloc.replace("localhost", "127.0.0.1") return urllib.parse.urlunsplit( - (url.scheme, "{}@{}".format(auth, host), url.path, url.query, url.fragment,) + ( + url.scheme, + "{}@{}".format(auth, host), + url.path, + url.query, + url.fragment, + ) ) @@ -230,4 +236,7 @@ def deserialize( def __repr__(self): # type: (...) -> str - return "" % (self.headers, self.payload,) + return "" % ( + self.headers, + self.payload, + ) diff --git a/tests/assertions.py b/tests/assertions.py index efb05c39b6..2be06c18f3 100644 --- a/tests/assertions.py +++ b/tests/assertions.py @@ -45,7 +45,9 @@ def assert_meta(envelope, release="test-example-release", integration=None): expected_sdk = { "name": "sentry.native", "version": "0.4.12", - "packages": [{"name": "github:getsentry/sentry-native", "version": "0.4.12"},], + "packages": [ + {"name": "github:getsentry/sentry-native", "version": "0.4.12"}, + ], } if not is_android: if sys.platform == "win32": diff --git a/tests/cmake.py b/tests/cmake.py index b9b8860bd3..c59ba6db87 100644 --- a/tests/cmake.py +++ b/tests/cmake.py @@ -76,7 +76,13 @@ def destroy(self): ] if len(coverage_dirs) > 0: subprocess.run( - ["kcov", "--clean", "--merge", coveragedir, *coverage_dirs,] + [ + "kcov", + "--clean", + "--merge", + coveragedir, + *coverage_dirs, + ] ) diff --git a/tests/test_integration_crashpad.py b/tests/test_integration_crashpad.py index ba56b6ee2e..7eb0ca2c2a 100644 --- a/tests/test_integration_crashpad.py +++ b/tests/test_integration_crashpad.py @@ -95,7 +95,10 @@ def test_crashpad_crash_after_shutdown(cmake, httpserver): with httpserver.wait(timeout=10) as waiting: child = run( - tmp_path, "sentry_example", ["log", "crash-after-shutdown"], env=env, + tmp_path, + "sentry_example", + ["log", "crash-after-shutdown"], + env=env, ) assert child.returncode # well, its a crash after all diff --git a/tests/test_integration_http.py b/tests/test_integration_http.py index 502d3bd450..ae640ec869 100644 --- a/tests/test_integration_http.py +++ b/tests/test_integration_http.py @@ -28,7 +28,8 @@ def test_capture_http(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "none"}) httpserver.expect_oneshot_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver), SENTRY_RELEASE="🤮🚀") @@ -55,7 +56,8 @@ def test_session_http(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "none"}) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -68,7 +70,11 @@ def test_session_http(cmake, httpserver): env=env, ) run( - tmp_path, "sentry_example", ["log", "start-session"], check=True, env=env, + tmp_path, + "sentry_example", + ["log", "start-session"], + check=True, + env=env, ) assert len(httpserver.log) == 1 @@ -82,7 +88,8 @@ def test_capture_and_session_http(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "none"}) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -110,7 +117,8 @@ def test_exception_and_session_http(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "none"}) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -137,10 +145,14 @@ def test_exception_and_session_http(cmake, httpserver): @pytest.mark.skipif(not has_files, reason="test needs a local filesystem") def test_abnormal_session(cmake, httpserver): - tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "none"},) + tmp_path = cmake( + ["sentry_example"], + {"SENTRY_BACKEND": "none"}, + ) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -166,7 +178,11 @@ def test_abnormal_session(cmake, httpserver): session_file.write(session) run( - tmp_path, "sentry_example", ["log", "no-setup"], check=True, env=env, + tmp_path, + "sentry_example", + ["log", "no-setup"], + check=True, + env=env, ) assert len(httpserver.log) == 2 @@ -186,7 +202,8 @@ def test_inproc_crash_http(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "inproc"}) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -199,7 +216,11 @@ def test_inproc_crash_http(cmake, httpserver): assert child.returncode # well, its a crash after all run( - tmp_path, "sentry_example", ["log", "no-setup"], check=True, env=env, + tmp_path, + "sentry_example", + ["log", "no-setup"], + check=True, + env=env, ) assert len(httpserver.log) == 1 @@ -219,14 +240,24 @@ def test_inproc_reinstall(cmake, httpserver): env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") - child = run(tmp_path, "sentry_example", ["log", "reinstall", "crash"], env=env,) + child = run( + tmp_path, + "sentry_example", + ["log", "reinstall", "crash"], + env=env, + ) assert child.returncode # well, its a crash after all run( - tmp_path, "sentry_example", ["log", "no-setup"], check=True, env=env, + tmp_path, + "sentry_example", + ["log", "no-setup"], + check=True, + env=env, ) assert len(httpserver.log) == 1 @@ -236,7 +267,8 @@ def test_inproc_dump_inflight(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "inproc"}) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -256,7 +288,8 @@ def test_breakpad_crash_http(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "breakpad"}) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -269,7 +302,11 @@ def test_breakpad_crash_http(cmake, httpserver): assert child.returncode # well, its a crash after all run( - tmp_path, "sentry_example", ["log", "no-setup"], check=True, env=env, + tmp_path, + "sentry_example", + ["log", "no-setup"], + check=True, + env=env, ) assert len(httpserver.log) == 1 @@ -290,14 +327,24 @@ def test_breakpad_reinstall(cmake, httpserver): env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") - child = run(tmp_path, "sentry_example", ["log", "reinstall", "crash"], env=env,) + child = run( + tmp_path, + "sentry_example", + ["log", "reinstall", "crash"], + env=env, + ) assert child.returncode # well, its a crash after all run( - tmp_path, "sentry_example", ["log", "no-setup"], check=True, env=env, + tmp_path, + "sentry_example", + ["log", "no-setup"], + check=True, + env=env, ) assert len(httpserver.log) == 1 @@ -308,7 +355,8 @@ def test_breakpad_dump_inflight(cmake, httpserver): tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "breakpad"}) httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -339,7 +387,8 @@ def delayed(req): return "{}" httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_handler(delayed) env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver)) @@ -357,7 +406,8 @@ def delayed(req): httpserver.clear_log() httpserver.expect_request( - "/api/123456/envelope/", headers={"x-sentry-auth": auth_header}, + "/api/123456/envelope/", + headers={"x-sentry-auth": auth_header}, ).respond_with_data("OK") run(tmp_path, "sentry_example", ["log", "no-setup"], check=True, env=env) diff --git a/tests/test_integration_stdout.py b/tests/test_integration_stdout.py index 708e18f909..8998fefbac 100644 --- a/tests/test_integration_stdout.py +++ b/tests/test_integration_stdout.py @@ -20,7 +20,11 @@ def test_capture_stdout(cmake): tmp_path = cmake( - ["sentry_example"], {"SENTRY_BACKEND": "none", "SENTRY_TRANSPORT": "none",}, + ["sentry_example"], + { + "SENTRY_BACKEND": "none", + "SENTRY_TRANSPORT": "none", + }, ) output = check_output( @@ -43,7 +47,8 @@ def test_multi_process(cmake): # NOTE: It would have been nice to do *everything* in a unicode-named # directory, but apparently cmake does not like that either. tmp_path = cmake( - ["sentry_example"], {"SENTRY_BACKEND": "none", "SENTRY_TRANSPORT": "none"}, + ["sentry_example"], + {"SENTRY_BACKEND": "none", "SENTRY_TRANSPORT": "none"}, ) cwd = tmp_path.joinpath("unicode ❤️ Юля") @@ -86,7 +91,8 @@ def test_multi_process(cmake): def test_inproc_crash_stdout(cmake): tmp_path = cmake( - ["sentry_example"], {"SENTRY_BACKEND": "inproc", "SENTRY_TRANSPORT": "none"}, + ["sentry_example"], + {"SENTRY_BACKEND": "inproc", "SENTRY_TRANSPORT": "none"}, ) child = run(tmp_path, "sentry_example", ["attachment", "crash"]) @@ -112,7 +118,8 @@ def test_inproc_crash_stdout(cmake): @pytest.mark.skipif(not has_breakpad, reason="test needs breakpad backend") def test_breakpad_crash_stdout(cmake): tmp_path = cmake( - ["sentry_example"], {"SENTRY_BACKEND": "breakpad", "SENTRY_TRANSPORT": "none"}, + ["sentry_example"], + {"SENTRY_BACKEND": "breakpad", "SENTRY_TRANSPORT": "none"}, ) child = run(tmp_path, "sentry_example", ["attachment", "crash"])