Hello community,
here is the log from the commit of package python-sentry-sdk for openSUSE:Factory checked in at 2019-10-27 13:40:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-sentry-sdk (Old)
and /work/SRC/openSUSE:Factory/.python-sentry-sdk.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-sentry-sdk"
Sun Oct 27 13:40:40 2019 rev:8 rq:742963 version:0.13.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-sentry-sdk/python-sentry-sdk.changes 2019-10-22 15:45:10.753698497 +0200
+++ /work/SRC/openSUSE:Factory/.python-sentry-sdk.new.2990/python-sentry-sdk.changes 2019-10-27 13:40:49.685253528 +0100
@@ -1,0 +2,8 @@
+Fri Oct 25 14:53:43 UTC 2019 - Jimmy Berry
+
+- Update to 0.13.1
+ - Add new global functions for setting scope/context data.
+ - Fix a bug that would make Django 1.11+ apps crash when using
+ function-based middleware.
+
+-------------------------------------------------------------------
Old:
----
python-sentry-sdk-0.13.0.tar.gz
New:
----
python-sentry-sdk-0.13.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-sentry-sdk.spec ++++++
--- /var/tmp/diff_new_pack.4BEy64/_old 2019-10-27 13:40:51.357255545 +0100
+++ /var/tmp/diff_new_pack.4BEy64/_new 2019-10-27 13:40:51.361255550 +0100
@@ -18,7 +18,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-sentry-sdk
-Version: 0.13.0
+Version: 0.13.1
Release: 0
Summary: Python SDK for Sentry.io
License: BSD-2-Clause
++++++ python-sentry-sdk-0.13.0.tar.gz -> python-sentry-sdk-0.13.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/CHANGES.md new/sentry-python-0.13.1/CHANGES.md
--- old/sentry-python-0.13.0/CHANGES.md 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/CHANGES.md 2019-10-25 10:03:15.000000000 +0200
@@ -27,6 +27,11 @@
A major release `N` implies the previous release `N-1` will no longer receive updates. We generally do not backport bugfixes to older versions unless they are security relevant. However, feel free to ask for backports of specific commits on the bugtracker.
+## 0.13.1
+
+* Add new global functions for setting scope/context data.
+* Fix a bug that would make Django 1.11+ apps crash when using function-based middleware.
+
## 0.13.0
* Remove an old deprecation warning (behavior itself already changed since a long time).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/docs/conf.py new/sentry-python-0.13.1/docs/conf.py
--- old/sentry-python-0.13.0/docs/conf.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/docs/conf.py 2019-10-25 10:03:15.000000000 +0200
@@ -22,7 +22,7 @@
copyright = u"2019, Sentry Team and Contributors"
author = u"Sentry Team and Contributors"
-release = "0.13.0"
+release = "0.13.1"
version = ".".join(release.split(".")[:2]) # The short X.Y version.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/api.py new/sentry-python-0.13.1/sentry_sdk/api.py
--- old/sentry-python-0.13.0/sentry_sdk/api.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/api.py 2019-10-25 10:03:15.000000000 +0200
@@ -8,6 +8,7 @@
if MYPY:
from typing import Any
+ from typing import Dict
from typing import Optional
from typing import overload
from typing import Callable
@@ -36,6 +37,11 @@
"flush",
"last_event_id",
"start_span",
+ "set_tag",
+ "set_context",
+ "set_extra",
+ "set_user",
+ "set_level",
]
@@ -48,6 +54,15 @@
return f
+def scopemethod(f):
+ # type: (F) -> F
+ f.__doc__ = "%s\n\n%s" % (
+ "Alias for :py:meth:`sentry_sdk.Scope.%s`" % f.__name__,
+ inspect.getdoc(getattr(Scope, f.__name__)),
+ )
+ return f
+
+
@hubmethod
def capture_event(
event, # type: Event
@@ -163,6 +178,46 @@
return None
+@scopemethod # noqa
+def set_tag(key, value):
+ # type: (str, Any) -> None
+ hub = Hub.current
+ if hub is not None:
+ hub.scope.set_tag(key, value)
+
+
+@scopemethod # noqa
+def set_context(key, value):
+ # type: (str, Any) -> None
+ hub = Hub.current
+ if hub is not None:
+ hub.scope.set_context(key, value)
+
+
+@scopemethod # noqa
+def set_extra(key, value):
+ # type: (str, Any) -> None
+ hub = Hub.current
+ if hub is not None:
+ hub.scope.set_extra(key, value)
+
+
+@scopemethod # noqa
+def set_user(value):
+ # type: (Dict[str, Any]) -> None
+ hub = Hub.current
+ if hub is not None:
+ hub.scope.set_user(value)
+
+
+@scopemethod # noqa
+def set_level(value):
+ # type: (str) -> None
+ hub = Hub.current
+ if hub is not None:
+ hub.scope.set_level(value)
+
+
@hubmethod
def flush(
timeout=None, # type: Optional[float]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/client.py new/sentry-python-0.13.1/sentry_sdk/client.py
--- old/sentry-python-0.13.0/sentry_sdk/client.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/client.py 2019-10-25 10:03:15.000000000 +0200
@@ -13,7 +13,7 @@
disable_capture_event,
logger,
)
-from sentry_sdk.serializer import serialize, partial_serialize
+from sentry_sdk.serializer import serialize
from sentry_sdk.transport import make_transport
from sentry_sdk.consts import DEFAULT_OPTIONS, SDK_INFO, ClientConstructor
from sentry_sdk.integrations import setup_integrations
@@ -124,12 +124,8 @@
):
# type: (...) -> Optional[Event]
- client = self # type: Client # type: ignore
-
if event.get("timestamp") is None:
- event["timestamp"] = partial_serialize(
- client, datetime.utcnow(), is_databag=False, should_repr_strings=False
- )
+ event["timestamp"] = datetime.utcnow()
hint = dict(hint or ()) # type: Hint
@@ -175,9 +171,7 @@
# Postprocess the event here so that annotated types do
# generally not surface in before_send
- if event is not None and not self.options["_experiments"].get(
- "fast_serialize", False
- ):
+ if event is not None:
event = serialize(event)
before_send = self.options["before_send"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/consts.py new/sentry-python-0.13.1/sentry_sdk/consts.py
--- old/sentry-python-0.13.0/sentry_sdk/consts.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/consts.py 2019-10-25 10:03:15.000000000 +0200
@@ -72,7 +72,7 @@
del _get_default_options
-VERSION = "0.13.0"
+VERSION = "0.13.1"
SDK_INFO = {
"name": "sentry.python",
"version": VERSION,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/hub.py new/sentry-python-0.13.1/sentry_sdk/hub.py
--- old/sentry-python-0.13.0/sentry_sdk/hub.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/hub.py 2019-10-25 10:03:15.000000000 +0200
@@ -9,7 +9,6 @@
from sentry_sdk.scope import Scope
from sentry_sdk.client import Client
from sentry_sdk.tracing import Span
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import (
exc_info_from_error,
event_from_exception,
@@ -263,6 +262,12 @@
"""Returns the current client on the hub."""
return self._stack[-1][0]
+ @property
+ def scope(self):
+ # type: () -> Scope
+ """Returns the current scope on the hub."""
+ return self._stack[-1][1]
+
def last_event_id(self):
# type: () -> Optional[str]
"""Returns the last event ID."""
@@ -275,8 +280,6 @@
"""Binds a new client to the hub."""
top = self._stack[-1]
self._stack[-1] = (new, top[1])
- if not new or new.options["_experiments"].get("fast_serialize", False):
- top[1].clear_breadcrumbs()
def capture_event(
self,
@@ -309,14 +312,7 @@
return None
if level is None:
level = "info"
- return self.capture_event(
- {
- "message": partial_serialize(
- self.client, message, should_repr_strings=False
- ),
- "level": level,
- }
- )
+ return self.capture_event({"message": message, "level": level})
def capture_exception(
self, error=None # type: Optional[Union[BaseException, ExcInfo]]
@@ -388,8 +384,6 @@
if crumb.get("type") is None:
crumb["type"] = "default"
- crumb = partial_serialize(client, crumb, should_repr_strings=False)
-
if client.options["before_breadcrumb"] is not None:
new_crumb = client.options["before_breadcrumb"](crumb, hint)
else:
@@ -483,8 +477,6 @@
return _ScopeManager(self)
- scope = push_scope
-
def pop_scope_unsafe(self):
# type: () -> Tuple[Optional[Client], Scope]
"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/_wsgi_common.py new/sentry-python-0.13.1/sentry_sdk/integrations/_wsgi_common.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/_wsgi_common.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/_wsgi_common.py 2019-10-25 10:03:15.000000000 +0200
@@ -1,6 +1,5 @@
import json
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.hub import Hub, _should_send_default_pii
from sentry_sdk.utils import AnnotatedValue
from sentry_sdk._compat import text_type, iteritems
@@ -83,9 +82,7 @@
if data is not None:
request_info["data"] = data
- event["request"] = partial_serialize(
- client, request_info, should_repr_strings=False
- )
+ event["request"] = request_info
def content_length(self):
# type: () -> int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/aiohttp.py new/sentry-python-0.13.1/sentry_sdk/integrations/aiohttp.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/aiohttp.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/aiohttp.py 2019-10-25 10:03:15.000000000 +0200
@@ -9,7 +9,7 @@
_filter_headers,
request_body_within_bounds,
)
-from sentry_sdk.serializer import partial_serialize
+from sentry_sdk.tracing import Span
from sentry_sdk.utils import (
capture_internal_exceptions,
event_from_exception,
@@ -70,9 +70,13 @@
scope.clear_breadcrumbs()
scope.add_event_processor(_make_request_processor(weak_request))
+ span = Span.continue_from_headers(request.headers)
+ span.op = "http.server"
# If this transaction name makes it to the UI, AIOHTTP's
# URL resolver did not find a route or died trying.
- with hub.start_span(transaction="generic AIOHTTP request"):
+ span.transaction = "generic AIOHTTP request"
+
+ with hub.start_span(span):
try:
response = await old_handle(self, request)
except HTTPException:
@@ -136,11 +140,7 @@
request_info["env"] = {"REMOTE_ADDR": request.remote}
hub = Hub.current
- request_info["headers"] = partial_serialize(
- hub.client,
- _filter_headers(dict(request.headers)),
- should_repr_strings=False,
- )
+ request_info["headers"] = _filter_headers(dict(request.headers))
# Just attach raw data here if it is within bounds, if available.
# Unfortunately there's no way to get structured data from aiohttp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/asgi.py new/sentry-python-0.13.1/sentry_sdk/integrations/asgi.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/asgi.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/asgi.py 2019-10-25 10:03:15.000000000 +0200
@@ -10,7 +10,6 @@
from sentry_sdk._types import MYPY
from sentry_sdk.hub import Hub, _should_send_default_pii
from sentry_sdk.integrations._wsgi_common import _filter_headers
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import ContextVar, event_from_exception, transaction_from_function
from sentry_sdk.tracing import Span
@@ -114,9 +113,7 @@
# an endpoint, overwrite our path-based transaction name.
event["transaction"] = self.get_transaction(asgi_scope)
- event["request"] = partial_serialize(
- Hub.current.client, request_info, should_repr_strings=False
- )
+ event["request"] = request_info
return event
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/aws_lambda.py new/sentry-python-0.13.1/sentry_sdk/integrations/aws_lambda.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/aws_lambda.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/aws_lambda.py 2019-10-25 10:03:15.000000000 +0200
@@ -2,7 +2,6 @@
from sentry_sdk.hub import Hub, _should_send_default_pii
from sentry_sdk._compat import reraise
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import (
AnnotatedValue,
capture_internal_exceptions,
@@ -199,9 +198,7 @@
if ip is not None:
user_info["ip_address"] = ip
- event["request"] = partial_serialize(
- Hub.current.client, request, should_repr_strings=False
- )
+ event["request"] = request
return event
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/celery.py new/sentry-python-0.13.1/sentry_sdk/integrations/celery.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/celery.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/celery.py 2019-10-25 10:03:15.000000000 +0200
@@ -11,7 +11,6 @@
)
from sentry_sdk.hub import Hub
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import capture_internal_exceptions, event_from_exception
from sentry_sdk.tracing import Span
from sentry_sdk._compat import reraise
@@ -161,15 +160,14 @@
# type: (Any, Any, Any, Any, Optional[Any]) -> EventProcessor
def event_processor(event, hint):
# type: (Event, Hint) -> Optional[Event]
- client = Hub.current.client
with capture_internal_exceptions():
extra = event.setdefault("extra", {})
- extra["celery-job"] = partial_serialize(
- client,
- {"task_name": task.name, "args": args, "kwargs": kwargs},
- should_repr_strings=False,
- )
+ extra["celery-job"] = {
+ "task_name": task.name,
+ "args": args,
+ "kwargs": kwargs,
+ }
if "exc_info" in hint:
with capture_internal_exceptions():
@@ -177,11 +175,7 @@
event["fingerprint"] = [
"celery",
"SoftTimeLimitExceeded",
- partial_serialize(
- client,
- getattr(task, "name", task),
- should_repr_strings=False,
- ),
+ getattr(task, "name", task),
]
return event
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/django/middleware.py new/sentry-python-0.13.1/sentry_sdk/integrations/django/middleware.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/django/middleware.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/django/middleware.py 2019-10-25 10:03:15.000000000 +0200
@@ -7,7 +7,11 @@
from django import VERSION as DJANGO_VERSION
from sentry_sdk import Hub
-from sentry_sdk.utils import ContextVar, transaction_from_function
+from sentry_sdk.utils import (
+ ContextVar,
+ transaction_from_function,
+ capture_internal_exceptions,
+)
from sentry_sdk._types import MYPY
@@ -64,29 +68,36 @@
def _get_wrapped_method(old_method):
# type: (F) -> F
- @wraps(old_method)
- def sentry_wrapped_method(*args, **kwargs):
- # type: (*Any, **Any) -> Any
- hub = Hub.current
- integration = hub.get_integration(DjangoIntegration)
- if integration is None or not integration.middleware_spans:
- return old_method(*args, **kwargs)
-
- function_name = transaction_from_function(old_method)
-
- description = middleware_name
- function_basename = getattr(old_method, "__name__", None)
- if function_basename:
- description = "{}.{}".format(description, function_basename)
-
- with hub.start_span(
- op="django.middleware", description=description
- ) as span:
- span.set_tag("django.function_name", function_name)
- span.set_tag("django.middleware_name", middleware_name)
- return old_method(*args, **kwargs)
+ with capture_internal_exceptions():
+
+ def sentry_wrapped_method(*args, **kwargs):
+ # type: (*Any, **Any) -> Any
+ hub = Hub.current
+ integration = hub.get_integration(DjangoIntegration)
+ if integration is None or not integration.middleware_spans:
+ return old_method(*args, **kwargs)
+
+ function_name = transaction_from_function(old_method)
+
+ description = middleware_name
+ function_basename = getattr(old_method, "__name__", None)
+ if function_basename:
+ description = "{}.{}".format(description, function_basename)
+
+ with hub.start_span(
+ op="django.middleware", description=description
+ ) as span:
+ span.set_tag("django.function_name", function_name)
+ span.set_tag("django.middleware_name", middleware_name)
+ return old_method(*args, **kwargs)
+
+ try:
+ # fails for __call__ of function on Python 2 (see py2.7-django-1.11)
+ return wraps(old_method)(sentry_wrapped_method) # type: ignore
+ except Exception:
+ return sentry_wrapped_method # type: ignore
- return sentry_wrapped_method # type: ignore
+ return old_method
class SentryWrappingMiddleware(object):
def __init__(self, *args, **kwargs):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/flask.py new/sentry-python-0.13.1/sentry_sdk/integrations/flask.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/flask.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/flask.py 2019-10-25 10:03:15.000000000 +0200
@@ -134,11 +134,11 @@
return self.request.get_data()
def form(self):
- # type: () -> ImmutableMultiDict
+ # type: () -> ImmutableMultiDict[str, Any]
return self.request.form
def files(self):
- # type: () -> ImmutableMultiDict
+ # type: () -> ImmutableMultiDict[str, Any]
return self.request.files
def is_json(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/logging.py new/sentry-python-0.13.1/sentry_sdk/integrations/logging.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/logging.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/logging.py 2019-10-25 10:03:15.000000000 +0200
@@ -4,7 +4,6 @@
import datetime
from sentry_sdk.hub import Hub
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import (
to_string,
event_from_exception,
@@ -202,17 +201,10 @@
hint["log_record"] = record
- client = Hub.current.client
-
event["level"] = _logging_to_event_level(record.levelname)
event["logger"] = record.name
- event["logentry"] = {
- "message": to_string(record.msg),
- "params": partial_serialize(client, record.args, should_repr_strings=False),
- }
- event["extra"] = partial_serialize(
- client, _extra_from_record(record), should_repr_strings=False
- )
+ event["logentry"] = {"message": to_string(record.msg), "params": record.args}
+ event["extra"] = _extra_from_record(record)
hub.capture_event(event, hint=hint)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/redis.py new/sentry-python-0.13.1/sentry_sdk/integrations/redis.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/redis.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/redis.py 2019-10-25 10:03:15.000000000 +0200
@@ -49,5 +49,5 @@
return old_execute_command(self, name, *args, **kwargs)
redis.StrictRedis.execute_command = ( # type: ignore
- sentry_patched_execute_command
+ sentry_patched_execute_command # type: ignore
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/rq.py new/sentry-python-0.13.1/sentry_sdk/integrations/rq.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/rq.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/rq.py 2019-10-25 10:03:15.000000000 +0200
@@ -5,7 +5,6 @@
from sentry_sdk.hub import Hub
from sentry_sdk.integrations import Integration
from sentry_sdk.tracing import Span
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import capture_internal_exceptions, event_from_exception
from rq.timeouts import JobTimeoutException
@@ -102,17 +101,13 @@
if job is not None:
with capture_internal_exceptions():
extra = event.setdefault("extra", {})
- extra["rq-job"] = partial_serialize(
- Hub.current.client,
- {
- "job_id": job.id,
- "func": job.func_name,
- "args": job.args,
- "kwargs": job.kwargs,
- "description": job.description,
- },
- should_repr_strings=False,
- )
+ extra["rq-job"] = {
+ "job_id": job.id,
+ "func": job.func_name,
+ "args": job.args,
+ "kwargs": job.kwargs,
+ "description": job.description,
+ }
if "exc_info" in hint:
with capture_internal_exceptions():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/integrations/tornado.py new/sentry-python-0.13.1/sentry_sdk/integrations/tornado.py
--- old/sentry-python-0.13.0/sentry_sdk/integrations/tornado.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/integrations/tornado.py 2019-10-25 10:03:15.000000000 +0200
@@ -2,7 +2,6 @@
from inspect import iscoroutinefunction
from sentry_sdk.hub import Hub, _should_send_default_pii
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import (
HAS_REAL_CONTEXTVARS,
event_from_exception,
@@ -152,9 +151,7 @@
request.path,
)
- request_info["query_string"] = partial_serialize(
- Hub.current.client, request.query, should_repr_strings=False
- )
+ request_info["query_string"] = request.query
request_info["method"] = request.method
request_info["env"] = {"REMOTE_ADDR": request.remote_ip}
request_info["headers"] = _filter_headers(dict(request.headers))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/scope.py new/sentry-python-0.13.1/sentry_sdk/scope.py
--- old/sentry-python-0.13.0/sentry_sdk/scope.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/scope.py 2019-10-25 10:03:15.000000000 +0200
@@ -3,12 +3,7 @@
from functools import wraps
from itertools import chain
-import sentry_sdk
-
from sentry_sdk.utils import logger, capture_internal_exceptions
-from sentry_sdk.serializer import partial_serialize
-
-
from sentry_sdk._types import MYPY
if MYPY:
@@ -120,7 +115,12 @@
@_attr_setter
def level(self, value):
# type: (Optional[str]) -> None
- """When set this overrides the level."""
+ """When set this overrides the level. Deprecated in favor of set_level."""
+ self._level = value
+
+ def set_level(self, value):
+ # type: (Optional[str]) -> None
+ """Sets the level for the scope."""
self._level = value
@_attr_setter
@@ -141,7 +141,12 @@
@_attr_setter
def user(self, value):
# type: (Dict[str, Any]) -> None
- """When set a specific user is bound to the scope."""
+ """When set a specific user is bound to the scope. Deprecated in favor of set_user."""
+ self._user = value
+
+ def set_user(self, value):
+ # type: (Dict[str, Any]) -> None
+ """Sets a user for the scope."""
self._user = value
@property
@@ -166,9 +171,7 @@
):
# type: (...) -> None
"""Sets a tag for a key to a specific value."""
- self._tags[key] = partial_serialize(
- sentry_sdk.Hub.current.client, value, should_repr_strings=False
- )
+ self._tags[key] = value
def remove_tag(
self, key # type: str
@@ -184,9 +187,7 @@
):
# type: (...) -> None
"""Binds a context at a certain key to a specific value."""
- self._contexts[key] = partial_serialize(
- sentry_sdk.Hub.current.client, value, should_repr_strings=False
- )
+ self._contexts[key] = value
def remove_context(
self, key # type: str
@@ -202,9 +203,7 @@
):
# type: (...) -> None
"""Sets an extra key to a specific value."""
- self._extras[key] = partial_serialize(
- sentry_sdk.Hub.current.client, value, should_repr_strings=False
- )
+ self._extras[key] = value
def remove_extra(
self, key # type: str
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/serializer.py new/sentry-python-0.13.1/sentry_sdk/serializer.py
--- old/sentry-python-0.13.0/sentry_sdk/serializer.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/serializer.py 2019-10-25 10:03:15.000000000 +0200
@@ -17,8 +17,6 @@
if MYPY:
from types import TracebackType
- import sentry_sdk
-
from typing import Any
from typing import Dict
from typing import List
@@ -330,24 +328,3 @@
return rv
finally:
disable_capture_event.set(False)
-
-
-def partial_serialize(client, data, should_repr_strings=True, is_databag=True):
- # type: (Optional[sentry_sdk.Client], Any, bool, bool) -> Any
- is_recursive = disable_capture_event.get(None)
- if is_recursive:
- return CYCLE_MARKER
-
- if client is not None and client.options["_experiments"].get(
- "fast_serialize", False
- ):
- data = serialize(
- data, should_repr_strings=should_repr_strings, is_databag=is_databag
- )
-
- if isinstance(data, dict):
- # TODO: Bring back _meta annotations
- data.pop("_meta", None)
- return data
-
- return data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/tracing.py new/sentry-python-0.13.1/sentry_sdk/tracing.py
--- old/sentry-python-0.13.0/sentry_sdk/tracing.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/tracing.py 2019-10-25 10:03:15.000000000 +0200
@@ -6,7 +6,6 @@
import sentry_sdk
-from sentry_sdk.serializer import partial_serialize
from sentry_sdk.utils import capture_internal_exceptions, logger, to_string
from sentry_sdk._compat import PY2
from sentry_sdk._types import MYPY
@@ -254,15 +253,11 @@
def set_tag(self, key, value):
# type: (str, Any) -> None
- self._tags[key] = partial_serialize(
- sentry_sdk.Hub.current.client, value, should_repr_strings=False
- )
+ self._tags[key] = value
def set_data(self, key, value):
# type: (str, Any) -> None
- self._data[key] = partial_serialize(
- sentry_sdk.Hub.current.client, value, should_repr_strings=False
- )
+ self._data[key] = value
def set_failure(self):
# type: () -> None
@@ -320,15 +315,8 @@
"type": "transaction",
"transaction": self.transaction,
"contexts": {"trace": self.get_trace_context()},
- "timestamp": partial_serialize(
- client, self.timestamp, is_databag=False, should_repr_strings=False
- ),
- "start_timestamp": partial_serialize(
- client,
- self.start_timestamp,
- is_databag=False,
- should_repr_strings=False,
- ),
+ "timestamp": self.timestamp,
+ "start_timestamp": self.start_timestamp,
"spans": [
s.to_json(client)
for s in self._span_recorder.finished_spans
@@ -346,15 +334,8 @@
"same_process_as_parent": self.same_process_as_parent,
"op": self.op,
"description": self.description,
- "start_timestamp": partial_serialize(
- client,
- self.start_timestamp,
- is_databag=False,
- should_repr_strings=False,
- ),
- "timestamp": partial_serialize(
- client, self.timestamp, is_databag=False, should_repr_strings=False
- ),
+ "start_timestamp": self.start_timestamp,
+ "timestamp": self.timestamp,
} # type: Dict[str, Any]
transaction = self.transaction
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/sentry_sdk/utils.py new/sentry-python-0.13.1/sentry_sdk/utils.py
--- old/sentry-python-0.13.0/sentry_sdk/utils.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/sentry_sdk/utils.py 2019-10-25 10:03:15.000000000 +0200
@@ -104,16 +104,25 @@
self.__dict__ = dict(value.__dict__)
return
parts = urlparse.urlsplit(text_type(value))
+
if parts.scheme not in (u"http", u"https"):
raise BadDsn("Unsupported scheme %r" % parts.scheme)
self.scheme = parts.scheme
+
+ if parts.hostname is None:
+ raise BadDsn("Missing hostname")
+
self.host = parts.hostname
- self.port = parts.port
- if self.port is None:
+
+ if parts.port is None:
self.port = self.scheme == "https" and 443 or 80
- self.public_key = parts.username
- if not self.public_key:
+ else:
+ self.port = parts.port
+
+ if not parts.username:
raise BadDsn("Missing public key")
+
+ self.public_key = parts.username
self.secret_key = parts.password
path = parts.path.rsplit("/", 1)
@@ -418,9 +427,8 @@
"post_context": post_context,
} # type: Dict[str, Any]
if with_locals:
- rv["vars"] = sentry_sdk.serializer.partial_serialize(
- sentry_sdk.Hub.current.client, frame.f_locals
- )
+ rv["vars"] = frame.f_locals
+
return rv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/setup.py new/sentry-python-0.13.1/setup.py
--- old/sentry-python-0.13.0/setup.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/setup.py 2019-10-25 10:03:15.000000000 +0200
@@ -12,7 +12,7 @@
setup(
name="sentry-sdk",
- version="0.13.0",
+ version="0.13.1",
author="Sentry Team and Contributors",
author_email="hello@getsentry.com",
url="https://github.com/getsentry/sentry-python",
@@ -23,7 +23,7 @@
package_data={"sentry_sdk": ["py.typed"]},
zip_safe=False,
license="BSD",
- install_requires=["urllib3>=1.9", "certifi"],
+ install_requires=["urllib3>=1.10.0", "certifi"],
extras_require={
"flask": ["flask>=0.8", "blinker>=1.1"],
"bottle": ["bottle>=0.12.13"],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/conftest.py new/sentry-python-0.13.1/tests/conftest.py
--- old/sentry-python-0.13.0/tests/conftest.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/conftest.py 2019-10-25 10:03:15.000000000 +0200
@@ -179,17 +179,11 @@
return inner
-@pytest.fixture(params=[True, False], ids=["fast_serialize", "default_serialize"])
-def fast_serialize(request):
- return request.param
-
-
@pytest.fixture
-def sentry_init(monkeypatch_test_transport, fast_serialize, request):
+def sentry_init(monkeypatch_test_transport, request):
def inner(*a, **kw):
hub = sentry_sdk.Hub.current
client = sentry_sdk.Client(*a, **kw)
- client.options["_experiments"]["fast_serialize"] = fast_serialize
hub.bind_client(client)
monkeypatch_test_transport(sentry_sdk.Hub.current.client)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/integrations/bottle/test_bottle.py new/sentry-python-0.13.1/tests/integrations/bottle/test_bottle.py
--- old/sentry-python-0.13.0/tests/integrations/bottle/test_bottle.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/integrations/bottle/test_bottle.py 2019-10-25 10:03:15.000000000 +0200
@@ -117,9 +117,7 @@
assert event["exception"]["values"][0]["mechanism"]["handled"] is False
-def test_large_json_request(
- sentry_init, capture_events, app, get_client, fast_serialize
-):
+def test_large_json_request(sentry_init, capture_events, app, get_client):
sentry_init(integrations=[bottle_sentry.BottleIntegration()])
data = {"foo": {"bar": "a" * 2000}}
@@ -142,10 +140,9 @@
assert response[1] == "200 OK"
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]["bar"]) == 512
@@ -173,9 +170,7 @@
assert event["request"]["data"] == data
-def test_medium_formdata_request(
- sentry_init, capture_events, app, get_client, fast_serialize
-):
+def test_medium_formdata_request(sentry_init, capture_events, app, get_client):
sentry_init(integrations=[bottle_sentry.BottleIntegration()])
data = {"foo": "a" * 2000}
@@ -195,16 +190,15 @@
assert response[1] == "200 OK"
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]) == 512
@pytest.mark.parametrize("input_char", [u"a", b"a"])
def test_too_large_raw_request(
- sentry_init, input_char, capture_events, app, get_client, fast_serialize
+ sentry_init, input_char, capture_events, app, get_client
):
sentry_init(
integrations=[bottle_sentry.BottleIntegration()], request_bodies="small"
@@ -231,14 +225,13 @@
assert response[1] == "200 OK"
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"] == {
- "": {"len": 2000, "rem": [["!config", "x", 0, 2000]]}
- }
+ assert event["_meta"]["request"]["data"] == {
+ "": {"len": 2000, "rem": [["!config", "x", 0, 2000]]}
+ }
assert not event["request"]["data"]
-def test_files_and_form(sentry_init, capture_events, app, get_client, fast_serialize):
+def test_files_and_form(sentry_init, capture_events, app, get_client):
sentry_init(
integrations=[bottle_sentry.BottleIntegration()], request_bodies="always"
)
@@ -262,19 +255,17 @@
assert response[1] == "200 OK"
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]) == 512
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["file"] == {
- "": {
- "len": -1,
- "rem": [["!raw", "x", 0, -1]],
- } # bottle default content-length is -1
- }
+ assert event["_meta"]["request"]["data"]["file"] == {
+ "": {
+ "len": -1,
+ "rem": [["!raw", "x", 0, -1]],
+ } # bottle default content-length is -1
+ }
assert not event["request"]["data"]["file"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/integrations/django/myapp/settings.py new/sentry-python-0.13.1/tests/integrations/django/myapp/settings.py
--- old/sentry-python-0.13.0/tests/integrations/django/myapp/settings.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/integrations/django/myapp/settings.py 2019-10-25 10:03:15.000000000 +0200
@@ -66,6 +66,13 @@
return response
+def TestFunctionMiddleware(get_response):
+ def middleware(request):
+ return get_response(request)
+
+ return middleware
+
+
MIDDLEWARE_CLASSES = [
"django.contrib.sessions.middleware.SessionMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",
@@ -73,7 +80,9 @@
]
if MiddlewareMixin is not object:
- MIDDLEWARE = MIDDLEWARE_CLASSES
+ MIDDLEWARE = MIDDLEWARE_CLASSES + [
+ "tests.integrations.django.myapp.settings.TestFunctionMiddleware"
+ ]
ROOT_URLCONF = "tests.integrations.django.myapp.urls"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/integrations/django/test_basic.py new/sentry-python-0.13.1/tests/integrations/django/test_basic.py
--- old/sentry-python-0.13.0/tests/integrations/django/test_basic.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/integrations/django/test_basic.py 2019-10-25 10:03:15.000000000 +0200
@@ -357,7 +357,7 @@
assert event["transaction"] == expected_transaction
-def test_request_body(sentry_init, client, capture_events, fast_serialize):
+def test_request_body(sentry_init, client, capture_events):
sentry_init(integrations=[DjangoIntegration()])
events = capture_events()
content, status, headers = client.post(
@@ -370,11 +370,10 @@
assert event["message"] == "hi"
assert event["request"]["data"] == ""
- if not fast_serialize:
- assert event["_meta"]["request"]["data"][""] == {
- "len": 6,
- "rem": [["!raw", "x", 0, 6]],
- }
+ assert event["_meta"]["request"]["data"][""] == {
+ "len": 6,
+ "rem": [["!raw", "x", 0, 6]],
+ }
del events[:]
@@ -519,6 +518,7 @@
if DJANGO_VERSION >= (1, 10):
reference_value = [
+ "tests.integrations.django.myapp.settings.TestFunctionMiddleware.__call__",
"tests.integrations.django.myapp.settings.TestMiddleware.__call__",
"django.contrib.auth.middleware.AuthenticationMiddleware.__call__",
"django.contrib.sessions.middleware.SessionMiddleware.__call__",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/integrations/falcon/test_falcon.py new/sentry-python-0.13.1/tests/integrations/falcon/test_falcon.py
--- old/sentry-python-0.13.0/tests/integrations/falcon/test_falcon.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/integrations/falcon/test_falcon.py 2019-10-25 10:03:15.000000000 +0200
@@ -98,7 +98,7 @@
assert event["exception"]["values"][0]["mechanism"]["type"] == "falcon"
-def test_falcon_large_json_request(sentry_init, capture_events, fast_serialize):
+def test_falcon_large_json_request(sentry_init, capture_events):
sentry_init(integrations=[FalconIntegration()])
data = {"foo": {"bar": "a" * 2000}}
@@ -119,10 +119,9 @@
assert response.status == falcon.HTTP_200
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]["bar"]) == 512
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/integrations/flask/test_flask.py new/sentry-python-0.13.1/tests/integrations/flask/test_flask.py
--- old/sentry-python-0.13.0/tests/integrations/flask/test_flask.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/integrations/flask/test_flask.py 2019-10-25 10:03:15.000000000 +0200
@@ -189,7 +189,7 @@
assert event["user"]["id"] == str(user_id)
-def test_flask_large_json_request(sentry_init, capture_events, app, fast_serialize):
+def test_flask_large_json_request(sentry_init, capture_events, app):
sentry_init(integrations=[flask_sentry.FlaskIntegration()])
data = {"foo": {"bar": "a" * 2000}}
@@ -209,10 +209,9 @@
assert response.status_code == 200
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]["bar"]) == 512
@@ -238,9 +237,7 @@
assert event["request"]["data"] == data
-def test_flask_medium_formdata_request(
- sentry_init, capture_events, app, fast_serialize
-):
+def test_flask_medium_formdata_request(sentry_init, capture_events, app):
sentry_init(integrations=[flask_sentry.FlaskIntegration()])
data = {"foo": "a" * 2000}
@@ -260,17 +257,14 @@
assert response.status_code == 200
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]) == 512
@pytest.mark.parametrize("input_char", [u"a", b"a"])
-def test_flask_too_large_raw_request(
- sentry_init, input_char, capture_events, app, fast_serialize
-):
+def test_flask_too_large_raw_request(sentry_init, input_char, capture_events, app):
sentry_init(integrations=[flask_sentry.FlaskIntegration()], request_bodies="small")
data = input_char * 2000
@@ -293,14 +287,13 @@
assert response.status_code == 200
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"] == {
- "": {"len": 2000, "rem": [["!config", "x", 0, 2000]]}
- }
+ assert event["_meta"]["request"]["data"] == {
+ "": {"len": 2000, "rem": [["!config", "x", 0, 2000]]}
+ }
assert not event["request"]["data"]
-def test_flask_files_and_form(sentry_init, capture_events, app, fast_serialize):
+def test_flask_files_and_form(sentry_init, capture_events, app):
sentry_init(integrations=[flask_sentry.FlaskIntegration()], request_bodies="always")
data = {"foo": "a" * 2000, "file": (BytesIO(b"hello"), "hello.txt")}
@@ -320,16 +313,14 @@
assert response.status_code == 200
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]) == 512
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["file"] == {
- "": {"len": 0, "rem": [["!raw", "x", 0, 0]]}
- }
+ assert event["_meta"]["request"]["data"]["file"] == {
+ "": {"len": 0, "rem": [["!raw", "x", 0, 0]]}
+ }
assert not event["request"]["data"]["file"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/integrations/pyramid/test_pyramid.py new/sentry-python-0.13.1/tests/integrations/pyramid/test_pyramid.py
--- old/sentry-python-0.13.0/tests/integrations/pyramid/test_pyramid.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/integrations/pyramid/test_pyramid.py 2019-10-25 10:03:15.000000000 +0200
@@ -126,9 +126,7 @@
assert event["transaction"] == expected_transaction
-def test_large_json_request(
- sentry_init, capture_events, route, get_client, fast_serialize
-):
+def test_large_json_request(sentry_init, capture_events, route, get_client):
sentry_init(integrations=[PyramidIntegration()])
data = {"foo": {"bar": "a" * 2000}}
@@ -147,10 +145,9 @@
client.post("/", content_type="application/json", data=json.dumps(data))
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"]["bar"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]["bar"]) == 512
@@ -176,7 +173,7 @@
assert event["request"]["data"] == data
-def test_files_and_form(sentry_init, capture_events, route, get_client, fast_serialize):
+def test_files_and_form(sentry_init, capture_events, route, get_client):
sentry_init(integrations=[PyramidIntegration()], request_bodies="always")
data = {"foo": "a" * 2000, "file": (BytesIO(b"hello"), "hello.txt")}
@@ -192,16 +189,14 @@
client.post("/", data=data)
event, = events
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["foo"] == {
- "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
- }
+ assert event["_meta"]["request"]["data"]["foo"] == {
+ "": {"len": 2000, "rem": [["!limit", "x", 509, 512]]}
+ }
assert len(event["request"]["data"]["foo"]) == 512
- if not fast_serialize:
- assert event["_meta"]["request"]["data"]["file"] == {
- "": {"len": 0, "rem": [["!raw", "x", 0, 0]]}
- }
+ assert event["_meta"]["request"]["data"]["file"] == {
+ "": {"len": 0, "rem": [["!raw", "x", 0, 0]]}
+ }
assert not event["request"]["data"]["file"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tests/test_tracing.py new/sentry-python-0.13.1/tests/test_tracing.py
--- old/sentry-python-0.13.0/tests/test_tracing.py 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tests/test_tracing.py 2019-10-25 10:03:15.000000000 +0200
@@ -102,9 +102,7 @@
"args,expected_refcount",
[({"traces_sample_rate": 1.0}, 100), ({"traces_sample_rate": 0.0}, 0)],
)
-def test_memory_usage(
- sentry_init, capture_events, args, expected_refcount, fast_serialize
-):
+def test_memory_usage(sentry_init, capture_events, args, expected_refcount):
sentry_init(**args)
references = weakref.WeakSet()
@@ -128,10 +126,7 @@
# required only for pypy (cpython frees immediately)
gc.collect()
- if fast_serialize:
- assert len(references) <= expected_refcount
- else:
- assert len(references) == expected_refcount
+ assert len(references) == expected_refcount
def test_span_trimming(sentry_init, capture_events):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/sentry-python-0.13.0/tox.ini new/sentry-python-0.13.1/tox.ini
--- old/sentry-python-0.13.0/tox.ini 2019-10-17 16:58:12.000000000 +0200
+++ new/sentry-python-0.13.1/tox.ini 2019-10-25 10:03:15.000000000 +0200
@@ -159,7 +159,7 @@
linters: black
linters: flake8
linters: flake8-import-order
- linters: mypy>=0.730
+ linters: mypy==0.740
linters: flake8-bugbear>=19.8.0
py3.8: hypothesis