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
