Hello community, here is the log from the commit of package python-raven for openSUSE:Factory checked in at 2019-05-16 21:59:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-raven (Old) and /work/SRC/openSUSE:Factory/.python-raven.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-raven" Thu May 16 21:59:30 2019 rev:6 rq:702933 version:6.10.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-raven/python-raven.changes 2018-12-24 11:43:01.589365172 +0100 +++ /work/SRC/openSUSE:Factory/.python-raven.new.5148/python-raven.changes 2019-05-16 21:59:37.610792096 +0200 @@ -1,0 +2,9 @@ +Tue May 14 18:01:06 UTC 2019 - John Jolly <[email protected]> + +- Update to 6.10.0: + + [Core] Fixed stackframes in some situations being in inverse order. + + [Flask] Fix wrong exception handling logic (accidentally relied on Flask internals). + + [Core] No longer send NaN local vars as non-standard JSON. +- Refresh patch remove-unittest2.patch + +------------------------------------------------------------------- Old: ---- raven-6.9.0.tar.gz New: ---- raven-6.10.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-raven.spec ++++++ --- /var/tmp/diff_new_pack.bFIFa6/_old 2019-05-16 21:59:40.162790648 +0200 +++ /var/tmp/diff_new_pack.bFIFa6/_new 2019-05-16 21:59:40.166790645 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-raven # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-raven -Version: 6.9.0 +Version: 6.10.0 Release: 0 Summary: Raven is a client for Sentry License: BSD-3-Clause ++++++ raven-6.9.0.tar.gz -> raven-6.10.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/PKG-INFO new/raven-6.10.0/PKG-INFO --- old/raven-6.9.0/PKG-INFO 2018-05-30 22:30:56.000000000 +0200 +++ new/raven-6.10.0/PKG-INFO 2018-12-19 12:00:58.000000000 +0100 @@ -1,6 +1,6 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: raven -Version: 6.9.0 +Version: 6.10.0 Summary: Raven is a client for Sentry (https://getsentry.com) Home-page: https://github.com/getsentry/raven-python Author: Sentry @@ -31,3 +31,5 @@ Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python Classifier: Topic :: Software Development +Provides-Extra: flask +Provides-Extra: tests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/README.rst new/raven-6.10.0/README.rst --- old/raven-6.9.0/README.rst 2017-11-29 01:38:50.000000000 +0100 +++ new/raven-6.10.0/README.rst 2018-10-25 20:00:09.000000000 +0200 @@ -1,15 +1,10 @@ .. raw:: html <p align="center"> - -.. image:: docs/_static/logo.png - :target: https://sentry.io - :align: center - :width: 116 - :alt: Sentry website - -.. raw:: html - + <a href="https://sentry.io" target="_blank" align="center"> + <img src="https://sentry-brand.storage.googleapis.com/sentry-logo-black.png" width="280"> + </a> + <br> </p> Raven - Sentry for Python @@ -35,9 +30,11 @@ :alt: Code Climate -Raven is the official Python client for `Sentry`_, officially supports +Raven is the official legacy Python client for `Sentry`_, officially supports Python 2.6–2.7 & 3.3–3.7, and runs on PyPy and Google App Engine. +**This SDK is being phased out for** `Sentry-Python <https://github.com/getsentry/sentry-python>`_. + It tracks errors and exceptions that happen during the execution of your application and provides instant notification with detailed information needed to prioritize, identify, reproduce and fix each issue. @@ -91,7 +88,8 @@ Contributing ------------ -Raven is under active development and contributions are more than welcome! +Raven will continue to be maintained for bugfixes and contributions are more than welcome! New features should only go into the new sentry-python SDK. + There are many ways to contribute: * Join in on discussions on our `Mailing List`_ or in our `IRC Channel`_. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/conftest.py new/raven-6.10.0/conftest.py --- old/raven-6.9.0/conftest.py 2018-04-18 09:33:25.000000000 +0200 +++ new/raven-6.10.0/conftest.py 2018-12-15 20:00:21.000000000 +0100 @@ -44,7 +44,7 @@ use_djcelery = True try: import djcelery # NOQA - #INSTALLED_APPS.append('djcelery') + # INSTALLED_APPS.append('djcelery') except ImportError: use_djcelery = False diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/__init__.py new/raven-6.10.0/raven/__init__.py --- old/raven-6.9.0/raven/__init__.py 2018-05-30 22:30:19.000000000 +0200 +++ new/raven-6.10.0/raven/__init__.py 2018-12-19 12:00:46.000000000 +0100 @@ -12,7 +12,7 @@ __all__ = ('VERSION', 'Client', 'get_version') -VERSION = '6.9.0' +VERSION = '6.10.0' def _get_git_revision(path): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/base.py new/raven-6.10.0/raven/base.py --- old/raven-6.9.0/raven/base.py 2018-05-15 09:40:12.000000000 +0200 +++ new/raven-6.10.0/raven/base.py 2018-12-15 20:00:21.000000000 +0100 @@ -173,10 +173,12 @@ self.include_paths = set(o.get('include_paths') or []) self.exclude_paths = set(o.get('exclude_paths') or []) self.name = text_type( - o.get('name') or os.environ.get('SENTRY_NAME') or - o.get('machine') or defaults.NAME) + o.get('name') or os.environ.get('SENTRY_NAME') + or o.get('machine') or defaults.NAME + ) self.auto_log_stacks = bool( - o.get('auto_log_stacks') or defaults.AUTO_LOG_STACKS) + o.get('auto_log_stacks') or defaults.AUTO_LOG_STACKS + ) self.capture_locals = bool( o.get('capture_locals', defaults.CAPTURE_LOCALS)) self.string_max_length = int( @@ -198,8 +200,8 @@ self.environment = ( o.get('environment') or os.environ.get('SENTRY_ENVIRONMENT', None)) self.release = ( - o.get('release') or os.environ.get('SENTRY_RELEASE') or - os.environ.get('HEROKU_SLUG_COMMIT')) + o.get('release') or os.environ.get('SENTRY_RELEASE') + or os.environ.get('HEROKU_SLUG_COMMIT')) self.repos = self._format_repos(o.get('repos')) self.sample_rate = ( o.get('sample_rate') @@ -435,8 +437,8 @@ frame['in_app'] = False else: frame['in_app'] = ( - any(path.startswith(x) for x in self.include_paths) and - not any(path.startswith(x) for x in self.exclude_paths) + any(path.startswith(x) for x in self.include_paths) + and not any(path.startswith(x) for x in self.exclude_paths) ) transaction = None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/breadcrumbs.py new/raven-6.10.0/raven/breadcrumbs.py --- old/raven-6.9.0/raven/breadcrumbs.py 2018-03-23 19:11:57.000000000 +0100 +++ new/raven-6.10.0/raven/breadcrumbs.py 2018-12-15 20:00:21.000000000 +0100 @@ -3,6 +3,11 @@ import os import logging +try: + from collections.abc import Mapping +except ImportError: + # Python < 3.3 + from collections import Mapping from time import time from types import FunctionType @@ -22,11 +27,11 @@ def event_payload_considered_equal(a, b): return ( - a['type'] == b['type'] and - a['level'] == b['level'] and - a['message'] == b['message'] and - a['category'] == b['category'] and - a['data'] == b['data'] + a['type'] == b['type'] + and a['level'] == b['level'] + and a['message'] == b['message'] + and a['category'] == b['category'] + and a['data'] == b['data'] ) @@ -132,13 +137,23 @@ def processor(data): formatted_msg = msg + format_args = args + + # Extract 'extra' key from kwargs and merge into data + extra = kwargs.pop('extra', {}) + data_value = kwargs + data_value.update(extra) + + if args and len(args) == 1 and isinstance(args[0], Mapping) and args[0]: + format_args = args[0] + data_value.update(format_args) # If people log bad things, this can happen. Then just don't do # anything. try: formatted_msg = text_type(msg) - if args: - formatted_msg = msg % args + if format_args: + formatted_msg = msg % format_args except Exception: pass @@ -151,7 +166,7 @@ 'message': formatted_msg, 'category': logger.name, 'level': logging.getLevelName(level).lower(), - 'data': kwargs, + 'data': data_value, }) record(processor=processor) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/context.py new/raven-6.10.0/raven/context.py --- old/raven-6.9.0/raven/context.py 2017-02-15 18:22:27.000000000 +0100 +++ new/raven-6.10.0/raven/context.py 2018-09-28 12:27:04.000000000 +0200 @@ -7,7 +7,11 @@ """ from __future__ import absolute_import -from collections import Mapping, Iterable +try: + from collections.abc import Mapping, Iterable +except ImportError: + # Python < 3.3 + from collections import Mapping, Iterable from threading import local from weakref import ref as weakref diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/contrib/django/client.py new/raven-6.10.0/raven/contrib/django/client.py --- old/raven-6.9.0/raven/contrib/django/client.py 2018-05-30 22:23:28.000000000 +0200 +++ new/raven-6.10.0/raven/contrib/django/client.py 2018-12-15 20:00:21.000000000 +0100 @@ -288,10 +288,10 @@ # template information. As of Django 1.9 or so the new # template debug thing showed up. if hasattr(exc_value, 'django_template_source') or \ - ((isinstance(exc_value, TemplateSyntaxError) and - isinstance(getattr(exc_value, 'source', None), - (tuple, list)) and - isinstance(exc_value.source[0], Origin))) or \ + ((isinstance(exc_value, TemplateSyntaxError) + and isinstance(getattr(exc_value, 'source', None), + (tuple, list)) + and isinstance(exc_value.source[0], Origin))) or \ hasattr(exc_value, 'template_debug'): source = getattr(exc_value, 'django_template_source', getattr(exc_value, 'source', None)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/contrib/django/serializers.py new/raven-6.10.0/raven/contrib/django/serializers.py --- old/raven-6.9.0/raven/contrib/django/serializers.py 2017-02-15 18:22:27.000000000 +0100 +++ new/raven-6.10.0/raven/contrib/django/serializers.py 2018-12-15 20:00:21.000000000 +0100 @@ -25,9 +25,9 @@ return False pre = value.__class__.__name__[1:] - if not (hasattr(value, '%s__func' % pre) or - hasattr(value, '%s__unicode_cast' % pre) or - hasattr(value, '%s__text_cast' % pre)): + if not (hasattr(value, '%s__func' % pre) + or hasattr(value, '%s__unicode_cast' % pre) + or hasattr(value, '%s__text_cast' % pre)): return False return True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/contrib/flask.py new/raven-6.10.0/raven/contrib/flask.py --- old/raven-6.9.0/raven/contrib/flask.py 2017-11-29 01:38:50.000000000 +0100 +++ new/raven-6.10.0/raven/contrib/flask.py 2018-09-28 12:27:04.000000000 +0200 @@ -136,7 +136,16 @@ if not self.client: return - self.captureException(exc_info=kwargs.get('exc_info')) + # got_request_exception signal passes the exception as 'exception' + exception = kwargs.get('exception') + if exception is not None and hasattr(exception, '__traceback__'): + # On Python 3 we can contruct the exc_info via __traceback__ + exc_info = (type(exception), exception, exception.__traceback__) + else: + # The user may call the method with 'exc_info' manually + exc_info = kwargs.get('exc_info') + + self.captureException(exc_info=exc_info) def get_user_info(self, request): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/contrib/zope/__init__.py new/raven-6.10.0/raven/contrib/zope/__init__.py --- old/raven-6.9.0/raven/contrib/zope/__init__.py 2017-09-07 23:23:23.000000000 +0200 +++ new/raven-6.10.0/raven/contrib/zope/__init__.py 2018-12-15 20:00:21.000000000 +0100 @@ -46,8 +46,8 @@ def can_record(self, record): return not ( - record.name == 'raven' or - record.name.startswith(('sentry.errors', 'raven.')) + record.name == 'raven' + or record.name.startswith(('sentry.errors', 'raven.')) ) def emit(self, record): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/handlers/logging.py new/raven-6.10.0/raven/handlers/logging.py --- old/raven-6.9.0/raven/handlers/logging.py 2018-04-18 09:33:25.000000000 +0200 +++ new/raven-6.10.0/raven/handlers/logging.py 2018-12-15 20:00:21.000000000 +0100 @@ -81,8 +81,8 @@ def can_record(self, record): return not ( - record.name == 'raven' or - record.name.startswith(('sentry.errors', 'raven.')) + record.name == 'raven' + or record.name.startswith(('sentry.errors', 'raven.')) ) def emit(self, record): @@ -119,8 +119,10 @@ if not started: f_globals = getattr(frame, 'f_globals', {}) module_name = f_globals.get('__name__', '') - if ((last_mod and last_mod.startswith('logging')) and - not module_name.startswith('logging')): + if ( + last_mod and last_mod.startswith('logging') + and not module_name.startswith('logging') + ): started = True else: last_mod = module_name diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/utils/serializer/base.py new/raven-6.10.0/raven/utils/serializer/base.py --- old/raven-6.9.0/raven/utils/serializer/base.py 2018-05-11 11:17:42.000000000 +0200 +++ new/raven-6.10.0/raven/utils/serializer/base.py 2018-12-19 11:48:51.000000000 +0100 @@ -167,21 +167,22 @@ types = (bool,) def serialize(self, value, **kwargs): - return bool(value) + return repr(bool(value)) class FloatSerializer(Serializer): types = (float,) def serialize(self, value, **kwargs): - return float(value) + # Wrap with repr to convert inf/nan to string + return repr(float(value)) class IntegerSerializer(Serializer): types = (int,) def serialize(self, value, **kwargs): - return int(value) + return repr(int(value)) class FunctionSerializer(Serializer): @@ -197,7 +198,7 @@ types = (long,) # noqa def serialize(self, value, **kwargs): - return long(value) # noqa + return repr(long(value)) # noqa # register all serializers, order matters diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven/utils/stacks.py new/raven-6.10.0/raven/utils/stacks.py --- old/raven-6.9.0/raven/utils/stacks.py 2017-11-29 01:38:50.000000000 +0100 +++ new/raven-6.10.0/raven/utils/stacks.py 2018-07-25 13:37:29.000000000 +0200 @@ -134,7 +134,7 @@ if not frames: frames = inspect.stack()[1:] - for frame, lineno in ((f[0], f[2]) for f in frames): + for frame, lineno in ((f[0], f[2]) for f in reversed(frames)): f_locals = getattr(frame, 'f_locals', {}) if not _getitem_from_frame(f_locals, '__traceback_hide__'): yield frame, lineno diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven.egg-info/PKG-INFO new/raven-6.10.0/raven.egg-info/PKG-INFO --- old/raven-6.9.0/raven.egg-info/PKG-INFO 2018-05-30 22:30:52.000000000 +0200 +++ new/raven-6.10.0/raven.egg-info/PKG-INFO 2018-12-19 12:00:58.000000000 +0100 @@ -1,6 +1,6 @@ -Metadata-Version: 1.1 +Metadata-Version: 2.1 Name: raven -Version: 6.9.0 +Version: 6.10.0 Summary: Raven is a client for Sentry (https://getsentry.com) Home-page: https://github.com/getsentry/raven-python Author: Sentry @@ -31,3 +31,5 @@ Classifier: Programming Language :: Python :: 3.7 Classifier: Programming Language :: Python Classifier: Topic :: Software Development +Provides-Extra: flask +Provides-Extra: tests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/raven.egg-info/requires.txt new/raven-6.10.0/raven.egg-info/requires.txt --- old/raven-6.9.0/raven.egg-info/requires.txt 2018-05-30 22:30:52.000000000 +0200 +++ new/raven-6.10.0/raven.egg-info/requires.txt 2018-12-19 12:00:58.000000000 +0100 @@ -16,14 +16,14 @@ mock nose pytz -pytest>=3.2.0,<3.3.0 +pytest<3.3.0,>=3.2.0 pytest-timeout==1.2.1 pytest-xdist==1.18.2 pytest-pythonpath==0.7.2 pytest-cov==2.5.1 pytest-flake8==1.0.0 requests -tornado>=4.1,<5.0 +tornado<5.0,>=4.1 tox webob webtest @@ -33,6 +33,6 @@ Flask>=0.8 blinker>=1.1 Flask-Login>=0.2.0 -unittest2 -paste -web.py +blinker>=1.1 +sanic>=0.7.0 +aiohttp diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/setup.cfg new/raven-6.10.0/setup.cfg --- old/raven-6.9.0/setup.cfg 2018-05-30 22:30:56.000000000 +0200 +++ new/raven-6.10.0/setup.cfg 2018-12-19 12:00:58.000000000 +0100 @@ -1,7 +1,7 @@ [tool:pytest] python_files = test*.py addopts = --tb=native -p no:doctest -p no:logging --cov=raven -norecursedirs = raven build bin dist docs htmlcov hooks node_modules .* {args} +norecursedirs = raven build bin dist htmlcov hooks node_modules .* {args} django_settings_module = tests.contrib.django.settings python_paths = tests flake8-ignore = @@ -10,7 +10,7 @@ [flake8] ignore = F999,E501,E128,E124,E402,W503,E731,F841,D100,D101,D102,D103,D104,D105,D107,D200,D201,D205,D400,D401,D402,D403,I100,I101, I201, I202 max-line-length = 100 -exclude = .tox,.git,docs,tests +exclude = .tox,.git,tests [bdist_wheel] universal = 1 @@ -18,5 +18,4 @@ [egg_info] tag_build = tag_date = 0 -tag_svn_revision = 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/setup.py new/raven-6.10.0/setup.py --- old/raven-6.9.0/setup.py 2018-05-11 11:17:42.000000000 +0200 +++ new/raven-6.10.0/setup.py 2018-12-15 20:00:21.000000000 +0100 @@ -92,9 +92,9 @@ 'anyjson', 'ZConfig', ] + ( - flask_requires + flask_tests_requires + - sanic_requires + sanic_tests_requires + - unittest2_requires + webpy_tests_requires + flask_requires + flask_tests_requires + + sanic_requires + sanic_tests_requires + + unittest2_requires + webpy_tests_requires ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/tests/base/tests.py new/raven-6.10.0/tests/base/tests.py --- old/raven-6.9.0/tests/base/tests.py 2017-04-08 23:36:07.000000000 +0200 +++ new/raven-6.10.0/tests/base/tests.py 2018-12-19 11:48:51.000000000 +0100 @@ -307,6 +307,18 @@ self.assertEquals(frame['function'], 'test_exception_event') self.assertTrue('timestamp' in event) + def test_exception_nan_in_vars(self): + try: + foo = float("nan") # noqa + raise ValueError("foo") + except ValueError: + self.client.captureException() + + event, = self.client.events + exc, = event['exception']['values'] + frame, = exc['stacktrace']['frames'] + assert frame['vars']['foo'] == "nan" + def test_exception_event_true_exc_info(self): try: raise ValueError('foo') @@ -491,7 +503,7 @@ self.assertEquals(event['message'], 'test') assert 'stacktrace' in event self.assertEquals(len(frames), len(event['stacktrace']['frames'])) - for frame, frame_i in zip(frames, event['stacktrace']['frames']): + for frame, frame_i in zip(frames[::-1], event['stacktrace']['frames']): self.assertEquals(frame[0].f_code.co_filename, frame_i['abs_path']) self.assertEquals(frame[0].f_code.co_name, frame_i['function']) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/tests/breadcrumbs/tests.py new/raven-6.10.0/tests/breadcrumbs/tests.py --- old/raven-6.9.0/tests/breadcrumbs/tests.py 2018-03-23 19:11:57.000000000 +0100 +++ new/raven-6.10.0/tests/breadcrumbs/tests.py 2018-07-25 13:37:29.000000000 +0200 @@ -39,6 +39,20 @@ assert crumbs[0]['data'] == {'blah': 'baz'} assert crumbs[0]['message'] == 'This is a message with foo!' + def test_log_crumb_reporting_with_dict(self): + client = Client('http://foo:[email protected]/0') + with client.context: + log = logging.getLogger('whatever.foo') + log.info('This is a message with %(foo)s!', {'foo': 'bar'}, + extra={'blah': 'baz'}) + crumbs = client.context.breadcrumbs.get_buffer() + + assert len(crumbs) == 1 + assert crumbs[0]['type'] == 'default' + assert crumbs[0]['category'] == 'whatever.foo' + assert crumbs[0]['data'] == {'foo': 'bar', 'blah': 'baz'} + assert crumbs[0]['message'] == 'This is a message with bar!' + def test_log_crumb_reporting_with_large_message(self): client = Client('http://foo:[email protected]/0') with client.context: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/tests/handlers/logging/tests.py new/raven-6.10.0/tests/handlers/logging/tests.py --- old/raven-6.9.0/tests/handlers/logging/tests.py 2018-04-18 09:33:25.000000000 +0200 +++ new/raven-6.10.0/tests/handlers/logging/tests.py 2018-07-25 13:37:29.000000000 +0200 @@ -171,7 +171,7 @@ self.assertTrue('stacktrace' in event) frames = event['stacktrace']['frames'] self.assertNotEquals(len(frames), 1) - frame = frames[0] + frame = frames[-1] self.assertEqual(frame['module'], 'raven.handlers.logging') assert 'exception' not in event self.assertTrue('sentry.interfaces.Message' in event) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/raven-6.9.0/tests/utils/encoding/tests.py new/raven-6.10.0/tests/utils/encoding/tests.py --- old/raven-6.9.0/tests/utils/encoding/tests.py 2017-02-15 18:22:27.000000000 +0100 +++ new/raven-6.10.0/tests/utils/encoding/tests.py 2018-12-19 11:48:51.000000000 +0100 @@ -65,21 +65,18 @@ def test_float(self): result = transform(13.0) - self.assertEqual(type(result), float) - self.assertEqual(result, 13.0) + self.assertEqual(result, "13.0") def test_bool(self): result = transform(True) - self.assertEqual(type(result), bool) - self.assertEqual(result, True) + self.assertEqual(result, 'True') def test_int_subclass(self): class X(int): pass result = transform(X()) - self.assertEqual(type(result), int) - self.assertEqual(result, 0) + self.assertEqual(result, '0') def test_dict_keys(self): x = {'foo': 'bar'} @@ -176,7 +173,7 @@ def test_list_max_length(self): x = list(range(10)) result = transform(x, list_max_length=3) - self.assertEqual(result, (0, 1, 2)) + self.assertEqual(result, ('0', '1', '2')) def test_dict_max_length(self): x = dict((x, x) for x in range(10)) ++++++ remove-unittest2.patch ++++++ --- /var/tmp/diff_new_pack.bFIFa6/_old 2019-05-16 21:59:40.306790566 +0200 +++ /var/tmp/diff_new_pack.bFIFa6/_new 2019-05-16 21:59:40.310790563 +0200 @@ -35,10 +35,10 @@ # If it's Python 3.5+, add Sanic packages. @@ -94,7 +92,7 @@ tests_require = [ ] + ( - flask_requires + flask_tests_requires + - sanic_requires + sanic_tests_requires + -- unittest2_requires + webpy_tests_requires -+ webpy_tests_requires + flask_requires + flask_tests_requires + + sanic_requires + sanic_tests_requires +- + unittest2_requires + webpy_tests_requires ++ + webpy_tests_requires )
