Hello community,

here is the log from the commit of package python3-raven for openSUSE:Factory 
checked in at 2015-10-22 12:59:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python3-raven (Old)
 and      /work/SRC/openSUSE:Factory/.python3-raven.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python3-raven"

Changes:
--------
--- /work/SRC/openSUSE:Factory/python3-raven/python3-raven.changes      
2015-10-14 16:44:14.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.python3-raven.new/python3-raven.changes 
2015-10-22 12:59:26.000000000 +0200
@@ -1,0 +2,10 @@
+Tue Oct 20 03:03:39 UTC 2015 - [email protected]
+
+- update to version 5.8.0:
+  * Added support for detecting `release` on Heroku.
+  * pkg_resources is now prioritized for default version detection.
+  * Updated `in_app` support to include exception frames.
+  * Fixed support for `SENTRY_USER_ATTRS` in Flask.
+  * Handle DSNs which are sent as unicode values in Python 2.
+
+-------------------------------------------------------------------

Old:
----
  raven-5.7.2.tar.gz

New:
----
  raven-5.8.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python3-raven.spec ++++++
--- /var/tmp/diff_new_pack.3mIUiX/_old  2015-10-22 12:59:27.000000000 +0200
+++ /var/tmp/diff_new_pack.3mIUiX/_new  2015-10-22 12:59:27.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python3-raven
-Version:        5.7.2
+Version:        5.8.0
 Release:        0
 Url:            https://pypi.python.org/pypi/raven
 Summary:        A client for Sentry

++++++ raven-5.7.2.tar.gz -> raven-5.8.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/PKG-INFO new/raven-5.8.0/PKG-INFO
--- old/raven-5.7.2/PKG-INFO    2015-09-19 01:06:56.000000000 +0200
+++ new/raven-5.8.0/PKG-INFO    2015-10-20 00:39:48.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: raven
-Version: 5.7.2
+Version: 5.8.0
 Summary: Raven is a client for Sentry (https://www.getsentry.com)
 Home-page: https://github.com/getsentry/raven-python
 Author: David Cramer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/base.py 
new/raven-5.8.0/raven/base.py
--- old/raven-5.7.2/raven/base.py       2015-09-19 00:36:47.000000000 +0200
+++ new/raven-5.8.0/raven/base.py       2015-10-20 00:37:19.000000000 +0200
@@ -161,7 +161,7 @@
             context = {'sys.argv': sys.argv[:]}
         self.extra = context
         self.tags = o.get('tags') or {}
-        self.release = o.get('release')
+        self.release = o.get('release') or os.environ.get('HEROKU_SLUG_COMMIT')
 
         self.module_cache = ModuleProxyCache()
 
@@ -327,8 +327,8 @@
                 'stacktrace': stack_info,
             })
 
-        if 'stacktrace' in data and self.include_paths:
-            for frame in data['stacktrace']['frames']:
+        if self.include_paths:
+            for frame in self._iter_frames(data):
                 if frame.get('in_app') is not None:
                     continue
 
@@ -509,7 +509,7 @@
                            event (in milliseconds)
         :param extra: a dictionary of additional standard metadata
         :param stack: a stacktrace for the event
-        :param tags: list of extra tags
+        :param tags: dict of extra tags
         :return: a tuple with a 32-length string identifying this event
         """
 
@@ -531,6 +531,14 @@
         """
         return self.remote.is_active()
 
+    def _iter_frames(self, data):
+        if 'stacktrace' in data:
+            for frame in data['stacktrace']['frames']:
+                yield frame
+        if 'exception' in data:
+            for frame in 
data['exception']['values'][0]['stacktrace']['frames']:
+                yield frame
+
     def _successful_send(self):
         self.state.set_success()
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/conf/remote.py 
new/raven-5.8.0/raven/conf/remote.py
--- old/raven-5.7.2/raven/conf/remote.py        2015-08-01 20:49:08.000000000 
+0200
+++ new/raven-5.8.0/raven/conf/remote.py        2015-10-20 00:37:05.000000000 
+0200
@@ -5,9 +5,10 @@
 from raven.exceptions import InvalidDsn
 from raven.transport.threaded import ThreadedHTTPTransport
 from raven.utils import six
+from raven.utils.encoding import to_string
 from raven.utils.urlparse import parse_qsl, urlparse
 
-ERR_UNKNOWN_SCHEME = 'Unsupported Sentry DSN scheme: {0}'
+ERR_UNKNOWN_SCHEME = 'Unsupported Sentry DSN scheme: {0} ({1})'
 
 DEFAULT_TRANSPORT = ThreadedHTTPTransport
 
@@ -55,6 +56,7 @@
 
     @classmethod
     def from_string(cls, value, transport=None, transport_registry=None):
+        value = to_string(value)
         url = urlparse(value)
 
         if url.scheme not in ('http', 'https'):
@@ -66,7 +68,7 @@
                 transport_registry = TransportRegistry(default_transports)
 
             if not transport_registry.supported_scheme(url.scheme):
-                raise InvalidDsn(ERR_UNKNOWN_SCHEME.format(url.scheme))
+                raise InvalidDsn(ERR_UNKNOWN_SCHEME.format(url.scheme, value))
 
             transport = transport_registry.get_transport_cls(url.scheme)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/contrib/django/client.py 
new/raven-5.8.0/raven/contrib/django/client.py
--- old/raven-5.7.2/raven/contrib/django/client.py      2015-09-19 
00:36:47.000000000 +0200
+++ new/raven-5.8.0/raven/contrib/django/client.py      2015-10-20 
00:04:58.000000000 +0200
@@ -108,20 +108,13 @@
     def build_msg(self, *args, **kwargs):
         data = super(DjangoClient, self).build_msg(*args, **kwargs)
 
-        stacks = [
-            data.get('stacktrace'),
-        ]
-        if 'exception' in data:
-            stacks.append(data['exception']['values'][0]['stacktrace'])
+        for frame in self._iter_frames(data):
+            module = frame.get('module')
+            if not module:
+                continue
 
-        for stacktrace in filter(bool, stacks):
-            for frame in stacktrace['frames']:
-                module = frame.get('module')
-                if not module:
-                    continue
-
-                if module.startswith('django.'):
-                    frame['in_app'] = False
+            if module.startswith('django.'):
+                frame['in_app'] = False
 
         if not self.site and 'django.contrib.sites' in settings.INSTALLED_APPS:
             try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/contrib/django/models.py 
new/raven-5.8.0/raven/contrib/django/models.py
--- old/raven-5.7.2/raven/contrib/django/models.py      2015-08-01 
20:49:08.000000000 +0200
+++ new/raven-5.8.0/raven/contrib/django/models.py      2015-10-08 
20:18:23.000000000 +0200
@@ -124,7 +124,8 @@
         ga = lambda x, d=None: getattr(settings, 'SENTRY_%s' % x, d)
         options = copy.deepcopy(getattr(settings, 'RAVEN_CONFIG', {}))
         options.setdefault('include_paths', ga('INCLUDE_PATHS', []))
-        options['include_paths'] = set(options['include_paths']) | 
get_installed_apps()
+        if not options['include_paths']:
+            options['include_paths'] = get_installed_apps()
         options.setdefault('exclude_paths', ga('EXCLUDE_PATHS'))
         options.setdefault('timeout', ga('TIMEOUT'))
         options.setdefault('name', ga('NAME'))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/contrib/flask.py 
new/raven-5.8.0/raven/contrib/flask.py
--- old/raven-5.7.2/raven/contrib/flask.py      2015-09-19 00:36:47.000000000 
+0200
+++ new/raven-5.8.0/raven/contrib/flask.py      2015-10-16 20:07:36.000000000 
+0200
@@ -172,6 +172,8 @@
                 if hasattr(current_user, attr):
                     user_info[attr] = getattr(current_user, attr)
 
+        return user_info
+
     def get_http_info(self, request):
         """
         Determine how to retrieve actual data by using request.mimetype.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/transport/twisted.py 
new/raven-5.8.0/raven/transport/twisted.py
--- old/raven-5.7.2/raven/transport/twisted.py  2015-07-07 03:12:34.000000000 
+0200
+++ new/raven-5.8.0/raven/transport/twisted.py  2015-10-05 01:33:50.000000000 
+0200
@@ -30,7 +30,7 @@
         if not has_twisted:
             raise ImportError('TwistedHTTPTransport requires twisted.web.')
 
-        super(TwistedHTTPTransport, self).__init__(*args, **kwargs)
+        super(TwistedHTTPTransport, self).__init__(parsed_url, *args, **kwargs)
 
         # Import reactor as late as possible.
         from twisted.internet import reactor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/utils/__init__.py 
new/raven-5.8.0/raven/utils/__init__.py
--- old/raven-5.7.2/raven/utils/__init__.py     2015-09-19 00:36:47.000000000 
+0200
+++ new/raven-5.8.0/raven/utils/__init__.py     2015-10-20 00:22:17.000000000 
+0200
@@ -57,6 +57,16 @@
 
 def get_version_from_app(module_name, app):
     version = None
+
+    # Try to pull version from pkg_resource first
+    # as it is able to detect version tagged with egg_info -b
+    if pkg_resources is not None:
+        # pull version from pkg_resources if distro exists
+        try:
+            return pkg_resources.get_distribution(module_name).version
+        except pkg_resources.DistributionNotFound:
+            pass
+
     if hasattr(app, 'get_version'):
         version = app.get_version
     elif hasattr(app, '__version__'):
@@ -73,13 +83,7 @@
         version = None
 
     if version is None:
-        if pkg_resources is None:
-            return None
-        # pull version from pkg_resources if distro exists
-        try:
-            version = pkg_resources.get_distribution(module_name).version
-        except pkg_resources.DistributionNotFound:
-            return None
+        return None
 
     if isinstance(version, (list, tuple)):
         version = '.'.join(map(str, version))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven/utils/serializer/base.py 
new/raven-5.8.0/raven/utils/serializer/base.py
--- old/raven-5.7.2/raven/utils/serializer/base.py      2015-09-19 
00:36:47.000000000 +0200
+++ new/raven-5.8.0/raven/utils/serializer/base.py      2015-10-05 
01:33:50.000000000 +0200
@@ -9,7 +9,6 @@
 from __future__ import absolute_import
 
 import itertools
-import uuid
 import types
 
 from raven.utils import six
@@ -76,13 +75,6 @@
         )
 
 
-class UUIDSerializer(Serializer):
-    types = (uuid.UUID,)
-
-    def serialize(self, value, **kwargs):
-        return repr(value)
-
-
 class DictSerializer(Serializer):
     types = (dict,)
 
@@ -178,7 +170,6 @@
 
 # register all serializers, order matters
 serialization_manager.register(IterableSerializer)
-serialization_manager.register(UUIDSerializer)
 serialization_manager.register(DictSerializer)
 serialization_manager.register(UnicodeSerializer)
 serialization_manager.register(StringSerializer)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven.egg-info/PKG-INFO 
new/raven-5.8.0/raven.egg-info/PKG-INFO
--- old/raven-5.7.2/raven.egg-info/PKG-INFO     2015-09-19 01:06:55.000000000 
+0200
+++ new/raven-5.8.0/raven.egg-info/PKG-INFO     2015-10-20 00:39:47.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: raven
-Version: 5.7.2
+Version: 5.8.0
 Summary: Raven is a client for Sentry (https://www.getsentry.com)
 Home-page: https://github.com/getsentry/raven-python
 Author: David Cramer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven.egg-info/SOURCES.txt 
new/raven-5.8.0/raven.egg-info/SOURCES.txt
--- old/raven-5.7.2/raven.egg-info/SOURCES.txt  2015-09-19 01:06:56.000000000 
+0200
+++ new/raven-5.8.0/raven.egg-info/SOURCES.txt  2015-10-20 00:39:48.000000000 
+0200
@@ -17,7 +17,6 @@
 raven.egg-info/dependency_links.txt
 raven.egg-info/entry_points.txt
 raven.egg-info/not-zip-safe
-raven.egg-info/pbr.json
 raven.egg-info/requires.txt
 raven.egg-info/top_level.txt
 raven/conf/__init__.py
@@ -101,134 +100,71 @@
 raven/utils/serializer/base.py
 raven/utils/serializer/manager.py
 tests/__init__.py
-tests/__init__.pyc
 tests/base/__init__.py
-tests/base/__init__.pyc
 tests/base/tests.py
-tests/base/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/conf/__init__.py
-tests/conf/__init__.pyc
 tests/conf/tests.py
-tests/conf/__pycache__/tests.cpython-27-PYTEST.pyc
-tests/config/__init__.pyc
-tests/config/tests.pyc
 tests/context/__init__.py
-tests/context/__init__.pyc
 tests/context/tests.py
-tests/context/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/__init__.py
-tests/contrib/__init__.pyc
 tests/contrib/async/__init__.py
-tests/contrib/async/__init__.pyc
 tests/contrib/async/tests.py
-tests/contrib/async/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/bottle/__init__.py
-tests/contrib/bottle/__init__.pyc
 tests/contrib/bottle/tests.py
-tests/contrib/bottle/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/django/__init__.py
-tests/contrib/django/__init__.pyc
 tests/contrib/django/middleware.py
-tests/contrib/django/middleware.pyc
 tests/contrib/django/models.py
-tests/contrib/django/models.pyc
 tests/contrib/django/tests.py
 tests/contrib/django/urls.py
-tests/contrib/django/urls.pyc
 tests/contrib/django/views.py
-tests/contrib/django/views.pyc
-tests/contrib/django/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/django/templates/404.html
 tests/contrib/django/templates/__init__.py
 tests/contrib/django/templates/error.html
 tests/contrib/flask/__init__.py
-tests/contrib/flask/__init__.pyc
 tests/contrib/flask/tests.py
-tests/contrib/flask/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/pylons/__init__.py
-tests/contrib/pylons/__init__.pyc
 tests/contrib/pylons/tests.py
-tests/contrib/pylons/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/tornado/__init__.py
-tests/contrib/tornado/__init__.pyc
 tests/contrib/tornado/tests.py
-tests/contrib/tornado/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/webpy/__init__.py
-tests/contrib/webpy/__init__.pyc
 tests/contrib/webpy/tests.py
-tests/contrib/webpy/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/contrib/zerorpc/__init__.py
-tests/contrib/zerorpc/__init__.pyc
 tests/contrib/zerorpc/tests.py
-tests/contrib/zerorpc/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/events/__init__.py
 tests/functional/__init__.py
-tests/functional/__init__.pyc
 tests/functional/tests.py
-tests/functional/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/handlers/__init__.py
-tests/handlers/__init__.pyc
 tests/handlers/logbook/__init__.py
-tests/handlers/logbook/__init__.pyc
 tests/handlers/logbook/tests.py
-tests/handlers/logbook/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/handlers/logging/__init__.py
-tests/handlers/logging/__init__.pyc
 tests/handlers/logging/tests.py
-tests/handlers/logging/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/middleware/__init__.py
-tests/middleware/__init__.pyc
 tests/middleware/tests.py
-tests/middleware/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/processors/__init__.py
-tests/processors/__init__.pyc
 tests/processors/tests.py
-tests/processors/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/templates/sentry-tests/error.html
 tests/transport/__init__.py
-tests/transport/__init__.pyc
 tests/transport/tests.py
-tests/transport/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/transport/gevent/__init__.py
 tests/transport/gevent/tests.py
 tests/transport/requests/__init__.py
-tests/transport/requests/__init__.pyc
 tests/transport/requests/test_threaded_requests.py
 tests/transport/requests/tests.py
-tests/transport/requests/__pycache__/test_threaded_requests.cpython-27-PYTEST.pyc
-tests/transport/requests/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/transport/threaded/__init__.py
-tests/transport/threaded/__init__.pyc
 tests/transport/threaded/tests.py
-tests/transport/threaded/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/transport/tornado/__init__.py
-tests/transport/tornado/__init__.pyc
 tests/transport/tornado/tests.py
-tests/transport/tornado/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/utils/__init__.py
-tests/utils/__init__.pyc
 tests/utils/test_imports.py
 tests/utils/tests.py
-tests/utils/__pycache__/test_imports.cpython-27-PYTEST.pyc
-tests/utils/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/utils/encoding/__init__.py
-tests/utils/encoding/__init__.pyc
 tests/utils/encoding/tests.py
-tests/utils/encoding/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/utils/json/__init__.py
-tests/utils/json/__init__.pyc
 tests/utils/json/tests.py
-tests/utils/json/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/utils/stacks/__init__.py
-tests/utils/stacks/__init__.pyc
 tests/utils/stacks/tests.py
 tests/utils/stacks/utf8_file.txt
-tests/utils/stacks/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/utils/wsgi/__init__.py
-tests/utils/wsgi/__init__.pyc
 tests/utils/wsgi/tests.py
-tests/utils/wsgi/__pycache__/tests.cpython-27-PYTEST.pyc
 tests/versioning/__init__.py
-tests/versioning/__init__.pyc
-tests/versioning/tests.py
-tests/versioning/__pycache__/tests.cpython-27-PYTEST.pyc
\ No newline at end of file
+tests/versioning/tests.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven.egg-info/pbr.json 
new/raven-5.8.0/raven.egg-info/pbr.json
--- old/raven-5.7.2/raven.egg-info/pbr.json     2015-08-03 00:57:28.000000000 
+0200
+++ new/raven-5.8.0/raven.egg-info/pbr.json     1970-01-01 01:00:00.000000000 
+0100
@@ -1 +0,0 @@
-{"is_release": false, "git_version": "676c2ba"}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/raven.egg-info/requires.txt 
new/raven-5.8.0/raven.egg-info/requires.txt
--- old/raven-5.7.2/raven.egg-info/requires.txt 2015-09-19 01:06:55.000000000 
+0200
+++ new/raven-5.8.0/raven.egg-info/requires.txt 2015-10-20 00:39:47.000000000 
+0200
@@ -18,7 +18,6 @@
 pep8
 pytz
 pytest>=2.7.0,<2.8.0
-pytest-cov>=1.4
 pytest-django>=2.7.0,<2.8.0
 pytest-timeout==0.4
 requests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/setup.py new/raven-5.8.0/setup.py
--- old/raven-5.7.2/setup.py    2015-09-19 01:04:27.000000000 +0200
+++ new/raven-5.8.0/setup.py    2015-10-20 00:39:30.000000000 +0200
@@ -64,7 +64,6 @@
     'pep8',
     'pytz',
     'pytest>=2.7.0,<2.8.0',
-    'pytest-cov>=1.4',
     'pytest-django>=2.7.0,<2.8.0',
     'pytest-timeout==0.4',
     'requests',
@@ -96,7 +95,7 @@
 
 setup(
     name='raven',
-    version='5.7.2',
+    version='5.8.0',
     author='David Cramer',
     author_email='[email protected]',
     url='https://github.com/getsentry/raven-python',
Files old/raven-5.7.2/tests/__init__.pyc and new/raven-5.8.0/tests/__init__.pyc 
differ
Files old/raven-5.7.2/tests/base/__init__.pyc and 
new/raven-5.8.0/tests/base/__init__.pyc differ
Files old/raven-5.7.2/tests/base/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/base/__pycache__/tests.cpython-27-PYTEST.pyc differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/tests/base/tests.py 
new/raven-5.8.0/tests/base/tests.py
--- old/raven-5.7.2/tests/base/tests.py 2015-09-19 00:36:47.000000000 +0200
+++ new/raven-5.8.0/tests/base/tests.py 2015-10-20 00:04:58.000000000 +0200
@@ -455,3 +455,53 @@
 
         client = Client('sync+http://public:[email protected]/1')
         assert type(client.remote.get_transport()) is HTTPTransport
+
+    def test_marks_in_app_frames_for_stacktrace(self):
+        client = TempStoreClient(
+            include_paths=['foo'],
+            exclude_paths=['foo.bar'],
+        )
+        client.captureMessage('hello', data={
+            'stacktrace': {
+                'frames': [
+                    {'module': 'foo'},
+                    {'module': 'bar'},
+                    {'module': 'foo.bar'},
+                    {'module': 'foo.baz'},
+                ]
+            }
+        })
+
+        event = client.events.pop(0)
+        frames = event['stacktrace']['frames']
+        assert frames[0]['in_app']
+        assert not frames[1]['in_app']
+        assert not frames[2]['in_app']
+        assert frames[3]['in_app']
+
+    def test_marks_in_app_frames_for_exception(self):
+        client = TempStoreClient(
+            include_paths=['foo'],
+            exclude_paths=['foo.bar'],
+        )
+        client.captureMessage('hello', data={
+            'exception': {
+                'values': [{
+                    'stacktrace': {
+                        'frames': [
+                            {'module': 'foo'},
+                            {'module': 'bar'},
+                            {'module': 'foo.bar'},
+                            {'module': 'foo.baz'},
+                        ]
+                    }
+                }]
+            }
+        })
+
+        event = client.events.pop(0)
+        frames = event['exception']['values'][0]['stacktrace']['frames']
+        assert frames[0]['in_app']
+        assert not frames[1]['in_app']
+        assert not frames[2]['in_app']
+        assert frames[3]['in_app']
Files old/raven-5.7.2/tests/conf/__init__.pyc and 
new/raven-5.8.0/tests/conf/__init__.pyc differ
Files old/raven-5.7.2/tests/conf/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/conf/__pycache__/tests.cpython-27-PYTEST.pyc differ
Files old/raven-5.7.2/tests/config/__init__.pyc and 
new/raven-5.8.0/tests/config/__init__.pyc differ
Files old/raven-5.7.2/tests/config/tests.pyc and 
new/raven-5.8.0/tests/config/tests.pyc differ
Files old/raven-5.7.2/tests/context/__init__.pyc and 
new/raven-5.8.0/tests/context/__init__.pyc differ
Files old/raven-5.7.2/tests/context/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/context/__pycache__/tests.cpython-27-PYTEST.pyc differ
Files old/raven-5.7.2/tests/contrib/__init__.pyc and 
new/raven-5.8.0/tests/contrib/__init__.pyc differ
Files old/raven-5.7.2/tests/contrib/async/__init__.pyc and 
new/raven-5.8.0/tests/contrib/async/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/async/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/contrib/async/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/contrib/bottle/__init__.pyc and 
new/raven-5.8.0/tests/contrib/bottle/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/bottle/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/contrib/bottle/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/contrib/django/__init__.pyc and 
new/raven-5.8.0/tests/contrib/django/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/django/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/contrib/django/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/contrib/django/middleware.pyc and 
new/raven-5.8.0/tests/contrib/django/middleware.pyc differ
Files old/raven-5.7.2/tests/contrib/django/models.pyc and 
new/raven-5.8.0/tests/contrib/django/models.pyc differ
Files old/raven-5.7.2/tests/contrib/django/urls.pyc and 
new/raven-5.8.0/tests/contrib/django/urls.pyc differ
Files old/raven-5.7.2/tests/contrib/django/views.pyc and 
new/raven-5.8.0/tests/contrib/django/views.pyc differ
Files old/raven-5.7.2/tests/contrib/flask/__init__.pyc and 
new/raven-5.8.0/tests/contrib/flask/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/flask/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/contrib/flask/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/raven-5.7.2/tests/contrib/flask/tests.py 
new/raven-5.8.0/tests/contrib/flask/tests.py
--- old/raven-5.7.2/tests/contrib/flask/tests.py        2015-08-01 
20:49:08.000000000 +0200
+++ new/raven-5.8.0/tests/contrib/flask/tests.py        2015-10-16 
20:07:36.000000000 +0200
@@ -27,13 +27,23 @@
     is_active = lambda x: True
     is_authenticated = lambda x: True
     get_id = lambda x: 1
+    name = 'TestUser'
 
+    def to_dict(self):
+        return {
+            'id': self.get_id(),
+            'name': self.name
+        }
 
-def create_app(ignore_exceptions=None, debug=False):
+
+def create_app(ignore_exceptions=None, debug=False, **config):
     import os
 
     app = Flask(__name__)
     app.config['SECRET_KEY'] = os.urandom(40)
+    for key, value in config.items():
+        app.config[key] = value
+
     app.debug = debug
 
     if ignore_exceptions:
@@ -56,10 +66,10 @@
         current_app.extensions['sentry'].captureMessage('Interesting')
         return 'World'
 
-    @app.route('/an-error-logged-in/', methods=['GET', 'POST'])
+    @app.route('/login/', methods=['GET', 'POST'])
     def login():
         login_user(User())
-        raise ValueError('hello world')
+        return "hello world"
     return app
 
 
@@ -255,13 +265,20 @@
 
 
 class FlaskLoginTest(BaseTest):
+
+    @fixture
+    def app(self):
+        return create_app(SENTRY_USER_ATTRS=['name'])
+
     @before
     def setup_login(self):
         self.login_manager = init_login(self.app)
 
     def test_user(self):
-        self.client.get('/an-error-logged-in/')
+        self.client.get('/login/')
+        self.client.get('/an-error/')
         event = self.raven.events.pop(0)
         assert event['message'] == 'ValueError: hello world'
         assert 'request' in event
         assert 'user' in event
+        self.assertDictEqual(event['user'], User().to_dict())
Files old/raven-5.7.2/tests/contrib/pylons/__init__.pyc and 
new/raven-5.8.0/tests/contrib/pylons/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/pylons/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/contrib/pylons/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/contrib/tornado/__init__.pyc and 
new/raven-5.8.0/tests/contrib/tornado/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/tornado/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/contrib/tornado/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/contrib/webpy/__init__.pyc and 
new/raven-5.8.0/tests/contrib/webpy/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/webpy/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/contrib/webpy/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/contrib/zerorpc/__init__.pyc and 
new/raven-5.8.0/tests/contrib/zerorpc/__init__.pyc differ
Files 
old/raven-5.7.2/tests/contrib/zerorpc/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/contrib/zerorpc/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/functional/__init__.pyc and 
new/raven-5.8.0/tests/functional/__init__.pyc differ
Files old/raven-5.7.2/tests/functional/__pycache__/tests.cpython-27-PYTEST.pyc 
and new/raven-5.8.0/tests/functional/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/handlers/__init__.pyc and 
new/raven-5.8.0/tests/handlers/__init__.pyc differ
Files old/raven-5.7.2/tests/handlers/logbook/__init__.pyc and 
new/raven-5.8.0/tests/handlers/logbook/__init__.pyc differ
Files 
old/raven-5.7.2/tests/handlers/logbook/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/handlers/logbook/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/handlers/logging/__init__.pyc and 
new/raven-5.8.0/tests/handlers/logging/__init__.pyc differ
Files 
old/raven-5.7.2/tests/handlers/logging/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/handlers/logging/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/middleware/__init__.pyc and 
new/raven-5.8.0/tests/middleware/__init__.pyc differ
Files old/raven-5.7.2/tests/middleware/__pycache__/tests.cpython-27-PYTEST.pyc 
and new/raven-5.8.0/tests/middleware/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/processors/__init__.pyc and 
new/raven-5.8.0/tests/processors/__init__.pyc differ
Files old/raven-5.7.2/tests/processors/__pycache__/tests.cpython-27-PYTEST.pyc 
and new/raven-5.8.0/tests/processors/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/transport/__init__.pyc and 
new/raven-5.8.0/tests/transport/__init__.pyc differ
Files old/raven-5.7.2/tests/transport/__pycache__/tests.cpython-27-PYTEST.pyc 
and new/raven-5.8.0/tests/transport/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/transport/requests/__init__.pyc and 
new/raven-5.8.0/tests/transport/requests/__init__.pyc differ
Files 
old/raven-5.7.2/tests/transport/requests/__pycache__/test_threaded_requests.cpython-27-PYTEST.pyc
 and 
new/raven-5.8.0/tests/transport/requests/__pycache__/test_threaded_requests.cpython-27-PYTEST.pyc
 differ
Files 
old/raven-5.7.2/tests/transport/requests/__pycache__/tests.cpython-27-PYTEST.pyc
 and 
new/raven-5.8.0/tests/transport/requests/__pycache__/tests.cpython-27-PYTEST.pyc
 differ
Files old/raven-5.7.2/tests/transport/threaded/__init__.pyc and 
new/raven-5.8.0/tests/transport/threaded/__init__.pyc differ
Files 
old/raven-5.7.2/tests/transport/threaded/__pycache__/tests.cpython-27-PYTEST.pyc
 and 
new/raven-5.8.0/tests/transport/threaded/__pycache__/tests.cpython-27-PYTEST.pyc
 differ
Files old/raven-5.7.2/tests/transport/tornado/__init__.pyc and 
new/raven-5.8.0/tests/transport/tornado/__init__.pyc differ
Files 
old/raven-5.7.2/tests/transport/tornado/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/transport/tornado/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/utils/__init__.pyc and 
new/raven-5.8.0/tests/utils/__init__.pyc differ
Files 
old/raven-5.7.2/tests/utils/__pycache__/test_imports.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/utils/__pycache__/test_imports.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/utils/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/utils/__pycache__/tests.cpython-27-PYTEST.pyc differ
Files old/raven-5.7.2/tests/utils/encoding/__init__.pyc and 
new/raven-5.8.0/tests/utils/encoding/__init__.pyc differ
Files 
old/raven-5.7.2/tests/utils/encoding/__pycache__/tests.cpython-27-PYTEST.pyc 
and 
new/raven-5.8.0/tests/utils/encoding/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/utils/json/__init__.pyc and 
new/raven-5.8.0/tests/utils/json/__init__.pyc differ
Files old/raven-5.7.2/tests/utils/json/__pycache__/tests.cpython-27-PYTEST.pyc 
and new/raven-5.8.0/tests/utils/json/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/utils/stacks/__init__.pyc and 
new/raven-5.8.0/tests/utils/stacks/__init__.pyc differ
Files 
old/raven-5.7.2/tests/utils/stacks/__pycache__/tests.cpython-27-PYTEST.pyc and 
new/raven-5.8.0/tests/utils/stacks/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/utils/wsgi/__init__.pyc and 
new/raven-5.8.0/tests/utils/wsgi/__init__.pyc differ
Files old/raven-5.7.2/tests/utils/wsgi/__pycache__/tests.cpython-27-PYTEST.pyc 
and new/raven-5.8.0/tests/utils/wsgi/__pycache__/tests.cpython-27-PYTEST.pyc 
differ
Files old/raven-5.7.2/tests/versioning/__init__.pyc and 
new/raven-5.8.0/tests/versioning/__init__.pyc differ
Files old/raven-5.7.2/tests/versioning/__pycache__/tests.cpython-27-PYTEST.pyc 
and new/raven-5.8.0/tests/versioning/__pycache__/tests.cpython-27-PYTEST.pyc 
differ


Reply via email to