From e02ef565304c0eac63cfe8192275220f00d9ca31 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 15:39:06 +0300 Subject: [PATCH 01/22] feat(flask): Add `sentry_trace()` template helper To setup distributed tracing links between a Flask app and a front-end app, one needs to figure out how to get the current hub, safely get the traceparent and then properly pass it into a template and then finally use that properly in a `meta` tag. [The guide](https://docs.sentry.io/platforms/javascript/performance/connect-services/) is woefully inadequete and error-prone so this PR adds a built-in helper `sentry_trace()` to the Flask integration to simplfy this linking. --- examples/tracing/templates/index.html | 12 +++--------- sentry_sdk/integrations/flask.py | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/examples/tracing/templates/index.html b/examples/tracing/templates/index.html index 2aa95e789c..7335f3c496 100644 --- a/examples/tracing/templates/index.html +++ b/examples/tracing/templates/index.html @@ -1,4 +1,6 @@ - + + +{{ sentry_trace() }} @@ -14,14 +16,6 @@ debug: true }); -window.setTimeout(function() { - const scope = Sentry.getCurrentHub().getScope(); - // TODO: Wait for Daniel's traceparent API - scope.setSpan(scope.getSpan().constructor.fromTraceparent( - "00-{{ traceparent['sentry-trace'].strip("-") }}-00" - )); -}); - async function compute() { const res = await fetch( "/compute/" + diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index e4008fcdbe..9bfaf24826 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -27,6 +27,7 @@ try: from flask import ( # type: ignore + Markup, Request, Flask, _request_ctx_stack, @@ -62,6 +63,14 @@ def __init__(self, transaction_style="endpoint"): ) self.transaction_style = transaction_style + @staticmethod + def _get_sentry_trace(): + sentry_span = Hub.current.scope.span + if sentry_span: + return Markup(f'') + + return '' + @staticmethod def setup_once(): # type: () -> None @@ -87,10 +96,14 @@ def sentry_patched_wsgi_app(self, environ, start_response): if Hub.current.get_integration(FlaskIntegration) is None: return old_app(self, environ, start_response) - return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))( + patched_app = SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))( environ, start_response ) + patched_app.jinja_env.globals['sentry_trace'] = self._get_sentry_trace + + return patched_app + Flask.__call__ = sentry_patched_wsgi_app # type: ignore From 3c68dd8ddfed73cfa4b9bbb6700eec93c72da266 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 15:51:42 +0300 Subject: [PATCH 02/22] fix lint issue --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 9bfaf24826..fe69972d75 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -68,7 +68,7 @@ def _get_sentry_trace(): sentry_span = Hub.current.scope.span if sentry_span: return Markup(f'') - + return '' @staticmethod From a5a8bae0e988e621f8a1f0c54e6c73e9c9df67b0 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 15:53:03 +0300 Subject: [PATCH 03/22] compat w/o f-strings, f-this --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index fe69972d75..36765ba7ad 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -67,7 +67,7 @@ def __init__(self, transaction_style="endpoint"): def _get_sentry_trace(): sentry_span = Hub.current.scope.span if sentry_span: - return Markup(f'') + return Markup('' % (sentry_span.to_traceparent(),)) return '' From e3b6a1d036137f7c277d7098e83cc7ed1e49b070 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:03:33 +0300 Subject: [PATCH 04/22] use add_template_global instead --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 36765ba7ad..6be94eb326 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -100,7 +100,7 @@ def sentry_patched_wsgi_app(self, environ, start_response): environ, start_response ) - patched_app.jinja_env.globals['sentry_trace'] = self._get_sentry_trace + patched_app.add_template_global(self._get_sentry_trace, 'sentry_trace') return patched_app From bacdb1caf93e73776c4de4718937f1baccd8c1a3 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:05:06 +0300 Subject: [PATCH 05/22] blacken --- sentry_sdk/integrations/flask.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 6be94eb326..db98a5fdfc 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -67,9 +67,12 @@ def __init__(self, transaction_style="endpoint"): def _get_sentry_trace(): sentry_span = Hub.current.scope.span if sentry_span: - return Markup('' % (sentry_span.to_traceparent(),)) + return Markup( + '' + % (sentry_span.to_traceparent(),) + ) - return '' + return "" @staticmethod def setup_once(): @@ -96,11 +99,11 @@ def sentry_patched_wsgi_app(self, environ, start_response): if Hub.current.get_integration(FlaskIntegration) is None: return old_app(self, environ, start_response) - patched_app = SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))( - environ, start_response - ) + patched_app = SentryWsgiMiddleware( + lambda *a, **kw: old_app(self, *a, **kw) + )(environ, start_response) - patched_app.add_template_global(self._get_sentry_trace, 'sentry_trace') + patched_app.add_template_global(self._get_sentry_trace, "sentry_trace") return patched_app From b523c03d1b90908a8da538082f49769b9f29acf6 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:06:54 +0300 Subject: [PATCH 06/22] fix error --- sentry_sdk/integrations/flask.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index db98a5fdfc..3c3bc35be5 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -103,7 +103,9 @@ def sentry_patched_wsgi_app(self, environ, start_response): lambda *a, **kw: old_app(self, *a, **kw) )(environ, start_response) - patched_app.add_template_global(self._get_sentry_trace, "sentry_trace") + patched_app.add_template_global( + FlaskIntegration._get_sentry_trace, "sentry_trace" + ) return patched_app From 6d92807baa27a2e2d8b07d6f293ac47282d3bcf6 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:20:17 +0300 Subject: [PATCH 07/22] Fix logical error --- sentry_sdk/integrations/flask.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 3c3bc35be5..4ea2b289b3 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -65,6 +65,8 @@ def __init__(self, transaction_style="endpoint"): @staticmethod def _get_sentry_trace(): + # type: () -> str + sentry_span = Hub.current.scope.span if sentry_span: return Markup( @@ -99,15 +101,14 @@ def sentry_patched_wsgi_app(self, environ, start_response): if Hub.current.get_integration(FlaskIntegration) is None: return old_app(self, environ, start_response) - patched_app = SentryWsgiMiddleware( - lambda *a, **kw: old_app(self, *a, **kw) - )(environ, start_response) - - patched_app.add_template_global( - FlaskIntegration._get_sentry_trace, "sentry_trace" - ) + def app_factory(self, *a, **kw): + patched_app = old_app(self, *a, **kw) + patched_app.add_template_global( + FlaskIntegration._get_sentry_trace, "sentry_trace" + ) + return patched_app - return patched_app + return SentryWsgiMiddleware(app_factory)(environ, start_response) Flask.__call__ = sentry_patched_wsgi_app # type: ignore From 4589240599a77406a86b1688b76cd468d4fa5db6 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:27:24 +0300 Subject: [PATCH 08/22] add typing --- sentry_sdk/integrations/flask.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 4ea2b289b3..0b85759fd2 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -102,6 +102,8 @@ def sentry_patched_wsgi_app(self, environ, start_response): return old_app(self, environ, start_response) def app_factory(self, *a, **kw): + # type: (Flask, *Any, **Any) -> Flask + patched_app = old_app(self, *a, **kw) patched_app.add_template_global( FlaskIntegration._get_sentry_trace, "sentry_trace" From d7f208756df25a6d7e0726724ec5e82f9780a200 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:36:44 +0300 Subject: [PATCH 09/22] better typing? --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 0b85759fd2..bb44b53df2 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -102,7 +102,7 @@ def sentry_patched_wsgi_app(self, environ, start_response): return old_app(self, environ, start_response) def app_factory(self, *a, **kw): - # type: (Flask, *Any, **Any) -> Flask + # type: (Flask, Dict[str, str], (...) -> Any) -> Flask patched_app = old_app(self, *a, **kw) patched_app.add_template_global( From 977f0cab86db6c2259131116844cc840541c0f09 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:37:40 +0300 Subject: [PATCH 10/22] sigh... --- sentry_sdk/integrations/flask.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index bb44b53df2..944d127748 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -101,8 +101,8 @@ def sentry_patched_wsgi_app(self, environ, start_response): if Hub.current.get_integration(FlaskIntegration) is None: return old_app(self, environ, start_response) - def app_factory(self, *a, **kw): - # type: (Flask, Dict[str, str], (...) -> Any) -> Flask + def app_factory(*a, **kw): + # type: (Dict[str, str], (...) -> Any) -> Flask patched_app = old_app(self, *a, **kw) patched_app.add_template_global( From d57af929c1ab9ced71772bc1fedb0cdab004a033 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:39:33 +0300 Subject: [PATCH 11/22] old syntax fix --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 944d127748..c4b02b5948 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -102,7 +102,7 @@ def sentry_patched_wsgi_app(self, environ, start_response): return old_app(self, environ, start_response) def app_factory(*a, **kw): - # type: (Dict[str, str], (...) -> Any) -> Flask + # type: (Dict[str, str], Callable[..., Any]) -> Flask patched_app = old_app(self, *a, **kw) patched_app.add_template_global( From 98d601c0b69b90800ea45cbae610f2b45e8ccdb1 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:43:17 +0300 Subject: [PATCH 12/22] sure, whatever you say linter --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index c4b02b5948..c16463bfcd 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -102,7 +102,7 @@ def sentry_patched_wsgi_app(self, environ, start_response): return old_app(self, environ, start_response) def app_factory(*a, **kw): - # type: (Dict[str, str], Callable[..., Any]) -> Flask + # type: (Dict[str, str], Callable[..., Any]) -> Any patched_app = old_app(self, *a, **kw) patched_app.add_template_global( From 22e92eb62c875c2a778f0c429bb3ad52f2977524 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 16:49:11 +0300 Subject: [PATCH 13/22] love linters --- sentry_sdk/integrations/flask.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index c16463bfcd..1d5a3a655f 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -101,10 +101,10 @@ def sentry_patched_wsgi_app(self, environ, start_response): if Hub.current.get_integration(FlaskIntegration) is None: return old_app(self, environ, start_response) - def app_factory(*a, **kw): + def app_factory(_environ, _start_response): # type: (Dict[str, str], Callable[..., Any]) -> Any - patched_app = old_app(self, *a, **kw) + patched_app = old_app(self, _environ, _start_response) patched_app.add_template_global( FlaskIntegration._get_sentry_trace, "sentry_trace" ) From 85b140688fc4fbe4861fc138fdb0ab28ae18e9d2 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 17:18:38 +0300 Subject: [PATCH 14/22] fix stuff --- sentry_sdk/integrations/flask.py | 43 ++++++++++++++++---------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 1d5a3a655f..255624acad 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -35,6 +35,7 @@ __version__ as FLASK_VERSION, ) from flask.signals import ( + before_render_template, got_request_exception, request_started, ) @@ -63,19 +64,6 @@ def __init__(self, transaction_style="endpoint"): ) self.transaction_style = transaction_style - @staticmethod - def _get_sentry_trace(): - # type: () -> str - - sentry_span = Hub.current.scope.span - if sentry_span: - return Markup( - '' - % (sentry_span.to_traceparent(),) - ) - - return "" - @staticmethod def setup_once(): # type: () -> None @@ -91,6 +79,7 @@ def setup_once(): if version < (0, 10): raise DidNotEnable("Flask 0.10 or newer is required.") + before_render_template(_add_sentry_trace) request_started.connect(_request_started) got_request_exception.connect(_capture_exception) @@ -101,18 +90,28 @@ def sentry_patched_wsgi_app(self, environ, start_response): if Hub.current.get_integration(FlaskIntegration) is None: return old_app(self, environ, start_response) - def app_factory(_environ, _start_response): - # type: (Dict[str, str], Callable[..., Any]) -> Any + return SentryWsgiMiddleware(lambda *a, **kw: old_app(self, *a, **kw))( + environ, start_response + ) - patched_app = old_app(self, _environ, _start_response) - patched_app.add_template_global( - FlaskIntegration._get_sentry_trace, "sentry_trace" - ) - return patched_app + Flask.__call__ = sentry_patched_wsgi_app # type: ignore - return SentryWsgiMiddleware(app_factory)(environ, start_response) - Flask.__call__ = sentry_patched_wsgi_app # type: ignore +def _add_sentry_trace(sender, template, context, **extra): + # type: (Flask, Any, Dict[str, any], ...) -> None + + if "sentry_trace" in context: + return + + sentry_span = Hub.current.scope.span + context["sentry_trace"] = ( + Markup( + '' + % (sentry_span.to_traceparent(),) + ) + if sentry_span + else "" + ) def _request_started(sender, **kwargs): From c91ce76f7ceaece63faccee086c14ecdb6503f2e Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 17:25:03 +0300 Subject: [PATCH 15/22] my PY --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 255624acad..c0007f7f4b 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -98,7 +98,7 @@ def sentry_patched_wsgi_app(self, environ, start_response): def _add_sentry_trace(sender, template, context, **extra): - # type: (Flask, Any, Dict[str, any], ...) -> None + # type: (Flask, Any, Dict[str, any], **Any) -> None if "sentry_trace" in context: return From 9ec62c0686b3fd8cd1ce0221c9750038fe7594f9 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 17:26:29 +0300 Subject: [PATCH 16/22] fix signal connection --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index c0007f7f4b..49e38716e2 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -79,7 +79,7 @@ def setup_once(): if version < (0, 10): raise DidNotEnable("Flask 0.10 or newer is required.") - before_render_template(_add_sentry_trace) + before_render_template.connect(_add_sentry_trace) request_started.connect(_request_started) got_request_exception.connect(_capture_exception) From b8b52776262b8a8b2e530bd0539357069fdf53f9 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 17:41:24 +0300 Subject: [PATCH 17/22] add tests --- examples/tracing/templates/index.html | 2 +- tests/integrations/flask/test_flask.py | 33 +++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/examples/tracing/templates/index.html b/examples/tracing/templates/index.html index 7335f3c496..c4d8f06c51 100644 --- a/examples/tracing/templates/index.html +++ b/examples/tracing/templates/index.html @@ -1,6 +1,6 @@ -{{ sentry_trace() }} +{{ sentry_trace }} diff --git a/tests/integrations/flask/test_flask.py b/tests/integrations/flask/test_flask.py index 6c173e223d..5bf4d8132e 100644 --- a/tests/integrations/flask/test_flask.py +++ b/tests/integrations/flask/test_flask.py @@ -365,7 +365,7 @@ def index(): assert transaction_event["request"]["data"] == data -@pytest.mark.parametrize("input_char", [u"a", b"a"]) +@pytest.mark.parametrize("input_char", ["a", b"a"]) def test_flask_too_large_raw_request(sentry_init, input_char, capture_events, app): sentry_init(integrations=[flask_sentry.FlaskIntegration()], request_bodies="small") @@ -737,3 +737,34 @@ def dispatch_request(self): assert event["message"] == "hi" assert event["transaction"] == "hello_class" + + +def test_sentry_trace_context(sentry_init, app, capture_events): + sentry_init(integrations=[flask_sentry.FlaskIntegration()]) + events = capture_events() + + @app.route("/") + def index(): + sentry_span = Hub.current.scope.span + capture_message(sentry_span.to_traceparent()) + return app.render_template_string("{{ sentry_trace }}") + + with app.test_client() as client: + response = client.get("/") + assert response.status_code == 200 + assert response.text == '' % ( + events[0]["message"], + ) + + +def test_dont_override_sentry_trace_context(sentry_init, app): + sentry_init(integrations=[flask_sentry.FlaskIntegration()]) + + @app.route("/") + def index(): + return app.render_template_string("{{ sentry_trace }}", dict(sentry_trace="hi")) + + with app.test_client() as client: + response = client.get("/") + assert response.status_code == 200 + assert response.text == "hi" From b5aa09cb7a1c41aa3b8fbfbbc772452784460d5c Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 17:44:02 +0300 Subject: [PATCH 18/22] MYPIE! --- sentry_sdk/integrations/flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sentry_sdk/integrations/flask.py b/sentry_sdk/integrations/flask.py index 49e38716e2..8883cbb724 100644 --- a/sentry_sdk/integrations/flask.py +++ b/sentry_sdk/integrations/flask.py @@ -98,7 +98,7 @@ def sentry_patched_wsgi_app(self, environ, start_response): def _add_sentry_trace(sender, template, context, **extra): - # type: (Flask, Any, Dict[str, any], **Any) -> None + # type: (Flask, Any, Dict[str, Any], **Any) -> None if "sentry_trace" in context: return From 9d4fbb027ebe7f2cfac4cd8b67f3806a13b5a73c Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 17:46:38 +0300 Subject: [PATCH 19/22] learn how to flask --- tests/integrations/flask/test_flask.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/integrations/flask/test_flask.py b/tests/integrations/flask/test_flask.py index 5bf4d8132e..bf1ef38c87 100644 --- a/tests/integrations/flask/test_flask.py +++ b/tests/integrations/flask/test_flask.py @@ -6,7 +6,14 @@ flask = pytest.importorskip("flask") -from flask import Flask, Response, request, abort, stream_with_context +from flask import ( + Flask, + Response, + request, + abort, + stream_with_context, + render_template_string, +) from flask.views import View from flask_login import LoginManager, login_user @@ -747,7 +754,7 @@ def test_sentry_trace_context(sentry_init, app, capture_events): def index(): sentry_span = Hub.current.scope.span capture_message(sentry_span.to_traceparent()) - return app.render_template_string("{{ sentry_trace }}") + return render_template_string("{{ sentry_trace }}") with app.test_client() as client: response = client.get("/") @@ -762,7 +769,7 @@ def test_dont_override_sentry_trace_context(sentry_init, app): @app.route("/") def index(): - return app.render_template_string("{{ sentry_trace }}", dict(sentry_trace="hi")) + return render_template_string("{{ sentry_trace }}", dict(sentry_trace="hi")) with app.test_client() as client: response = client.get("/") From 34e84d41060055edd156f57a83f18cc3eafee9b5 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 17:54:20 +0300 Subject: [PATCH 20/22] learn how to flask v2 --- tests/integrations/flask/test_flask.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integrations/flask/test_flask.py b/tests/integrations/flask/test_flask.py index bf1ef38c87..a4cd9ab606 100644 --- a/tests/integrations/flask/test_flask.py +++ b/tests/integrations/flask/test_flask.py @@ -769,7 +769,7 @@ def test_dont_override_sentry_trace_context(sentry_init, app): @app.route("/") def index(): - return render_template_string("{{ sentry_trace }}", dict(sentry_trace="hi")) + return render_template_string("{{ sentry_trace }}", sentry_trace="hi") with app.test_client() as client: response = client.get("/") From 35dfc8752978e892760de79b2162767dadfd8e62 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 18:09:32 +0300 Subject: [PATCH 21/22] response objects --- tests/integrations/flask/test_flask.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integrations/flask/test_flask.py b/tests/integrations/flask/test_flask.py index a4cd9ab606..caf408840a 100644 --- a/tests/integrations/flask/test_flask.py +++ b/tests/integrations/flask/test_flask.py @@ -759,7 +759,7 @@ def index(): with app.test_client() as client: response = client.get("/") assert response.status_code == 200 - assert response.text == '' % ( + assert response.data == '' % ( events[0]["message"], ) @@ -774,4 +774,4 @@ def index(): with app.test_client() as client: response = client.get("/") assert response.status_code == 200 - assert response.text == "hi" + assert response.data == "hi" From 0fd89ffb9a3cc8c98334a6072af838319cf86e46 Mon Sep 17 00:00:00 2001 From: Burak Yigit Kaya Date: Mon, 14 Feb 2022 18:21:35 +0300 Subject: [PATCH 22/22] bytes! --- tests/integrations/flask/test_flask.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/integrations/flask/test_flask.py b/tests/integrations/flask/test_flask.py index caf408840a..8723a35c86 100644 --- a/tests/integrations/flask/test_flask.py +++ b/tests/integrations/flask/test_flask.py @@ -759,9 +759,9 @@ def index(): with app.test_client() as client: response = client.get("/") assert response.status_code == 200 - assert response.data == '' % ( - events[0]["message"], - ) + assert response.data.decode( + "utf-8" + ) == '' % (events[0]["message"],) def test_dont_override_sentry_trace_context(sentry_init, app): @@ -774,4 +774,4 @@ def index(): with app.test_client() as client: response = client.get("/") assert response.status_code == 200 - assert response.data == "hi" + assert response.data == b"hi"