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
  )
  
  


Reply via email to