summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshley Camba Garrido <ashwoods@gmail.com>2017-11-17 13:47:37 +0100
committerAshley Camba Garrido <ashwoods@gmail.com>2017-11-17 13:47:37 +0100
commitbf67e543ee9a67c097f98772b4adf435729f3c90 (patch)
tree4323217ea4b87c9c6648dbf9f0ca5b5253d46e94
parent8037bdd2dab6026556da3b00ed049cc5aa1ee08e (diff)
downloadraven-deprecate-transport-setting-in-dns.tar.gz
Remove deprecated transport in dsndeprecate-transport-setting-in-dns
-rw-r--r--raven/base.py8
-rw-r--r--raven/conf/remote.py15
-rw-r--r--raven/transport/__init__.py2
-rw-r--r--raven/transport/base.py1
-rw-r--r--raven/transport/eventlet.py2
-rw-r--r--raven/transport/exceptions.py22
-rw-r--r--raven/transport/gevent.py2
-rw-r--r--raven/transport/http.py1
-rw-r--r--raven/transport/registry.py75
-rw-r--r--raven/transport/requests.py2
-rw-r--r--raven/transport/threaded.py2
-rw-r--r--raven/transport/threaded_requests.py2
-rw-r--r--raven/transport/tornado.py2
-rw-r--r--raven/transport/twisted.py1
-rw-r--r--raven/utils/encoding.py2
-rw-r--r--tests/base/tests.py25
-rw-r--r--tests/contrib/django/tests.py3
-rw-r--r--tests/handlers/logging/tests.py7
-rw-r--r--tests/new_client.py68
-rw-r--r--tests/transport/gevent/tests.py3
-rw-r--r--tests/transport/requests/test_threaded_requests.py7
-rw-r--r--tests/transport/requests/tests.py4
-rw-r--r--tests/transport/tests.py29
-rw-r--r--tests/transport/threaded/tests.py7
-rw-r--r--tests/transport/tornado/tests.py18
25 files changed, 131 insertions, 179 deletions
diff --git a/raven/base.py b/raven/base.py
index 475ecf7..506d651 100644
--- a/raven/base.py
+++ b/raven/base.py
@@ -42,7 +42,6 @@ from raven.utils.encoding import to_unicode
from raven.utils.serializer import transform
from raven.utils.stacks import get_stack_info, iter_stack_frames
from raven.utils.transaction import TransactionStack
-from raven.transport.registry import TransportRegistry, default_transports
# enforce imports to avoid obscure stacktraces with MemoryError
import raven.events # NOQA
@@ -148,8 +147,6 @@ class Client(object):
logger = logging.getLogger('raven')
protocol_version = '6'
- _registry = TransportRegistry(transports=default_transports)
-
def __init__(self, dsn=None, raise_send_errors=False, transport=None,
install_sys_hook=True, install_logging_hook=True,
hook_libraries=None, enable_breadcrumbs=True,
@@ -258,7 +255,6 @@ class Client(object):
result = RemoteConfig.from_string(
dsn,
transport=transport,
- transport_registry=self._registry,
)
self._transport_cache[dsn] = result
self.remote = result
@@ -287,10 +283,6 @@ class Client(object):
from raven.breadcrumbs import hook_libraries
hook_libraries(libraries)
- @classmethod
- def register_scheme(cls, scheme, transport_class):
- cls._registry.register_scheme(scheme, transport_class)
-
def get_processors(self):
for processor in self.processors:
yield self.module_cache[processor](self)
diff --git a/raven/conf/remote.py b/raven/conf/remote.py
index 4afe587..76316bb 100644
--- a/raven/conf/remote.py
+++ b/raven/conf/remote.py
@@ -2,7 +2,6 @@ from __future__ import absolute_import
import logging
import os
-import warnings
from raven.utils.compat import PY2, text_type
from raven.exceptions import InvalidDsn
@@ -76,7 +75,7 @@ class RemoteConfig(object):
return '//%s@%s%s/%s' % (self.public_key, netloc, url.path, self.project)
@classmethod
- def from_string(cls, value, transport=None, transport_registry=None):
+ def from_string(cls, value, transport=None):
# in Python 2.x sending the DSN as a unicode value will eventually
# cause issues in httplib
if PY2:
@@ -85,17 +84,7 @@ class RemoteConfig(object):
url = urlparse(value.strip())
if url.scheme not in ('http', 'https'):
- warnings.warn('Transport selection via DSN is deprecated. You should explicitly pass the transport class to Client() instead.')
-
- if transport is None:
- if not transport_registry:
- from raven.transport import TransportRegistry, default_transports
- transport_registry = TransportRegistry(default_transports)
-
- if not transport_registry.supported_scheme(url.scheme):
- raise InvalidDsn(ERR_UNKNOWN_SCHEME.format(url.scheme, value))
-
- transport = transport_registry.get_transport_cls(url.scheme)
+ raise InvalidDsn('Invalid Sentry DSN: %r' % url.geturl())
netloc = url.hostname
if url.port:
diff --git a/raven/transport/__init__.py b/raven/transport/__init__.py
index 3549c7b..014bdff 100644
--- a/raven/transport/__init__.py
+++ b/raven/transport/__init__.py
@@ -11,11 +11,9 @@ from __future__ import absolute_import
from raven.transport.base import * # NOQA
from raven.transport.eventlet import * # NOQA
-from raven.transport.exceptions import * # NOQA
from raven.transport.gevent import * # NOQA
from raven.transport.http import * # NOQA
from raven.transport.requests import * # NOQA
-from raven.transport.registry import * # NOQA
from raven.transport.twisted import * # NOQA
from raven.transport.threaded import * # NOQA
from raven.transport.tornado import * # NOQA
diff --git a/raven/transport/base.py b/raven/transport/base.py
index 3704524..bb2cd31 100644
--- a/raven/transport/base.py
+++ b/raven/transport/base.py
@@ -21,7 +21,6 @@ class Transport(object):
"""
is_async = False
- scheme = []
def send(self, url, data, headers):
"""
diff --git a/raven/transport/eventlet.py b/raven/transport/eventlet.py
index 48502b9..346ca76 100644
--- a/raven/transport/eventlet.py
+++ b/raven/transport/eventlet.py
@@ -24,8 +24,6 @@ except ImportError:
class EventletHTTPTransport(HTTPTransport):
- scheme = ['eventlet+http', 'eventlet+https']
-
def __init__(self, pool_size=100, **kwargs):
if not has_eventlet:
raise ImportError('EventletHTTPTransport requires eventlet.')
diff --git a/raven/transport/exceptions.py b/raven/transport/exceptions.py
deleted file mode 100644
index ce471a5..0000000
--- a/raven/transport/exceptions.py
+++ /dev/null
@@ -1,22 +0,0 @@
-"""
-raven.transport.exceptions
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
-:license: BSD, see LICENSE for more details.
-"""
-from __future__ import absolute_import
-
-
-class InvalidScheme(ValueError):
- """
- Raised when a transport is constructed using a URI which is not
- handled by the transport
- """
-
-
-class DuplicateScheme(Exception):
- """
- Raised when registering a handler for a particular scheme which
- is already registered
- """
diff --git a/raven/transport/gevent.py b/raven/transport/gevent.py
index e871545..0276560 100644
--- a/raven/transport/gevent.py
+++ b/raven/transport/gevent.py
@@ -24,8 +24,6 @@ except ImportError:
class GeventedHTTPTransport(AsyncTransport, HTTPTransport):
- scheme = ['gevent+http', 'gevent+https']
-
def __init__(self, maximum_outstanding_requests=100, *args, **kwargs):
if not has_gevent:
raise ImportError('GeventedHTTPTransport requires gevent.')
diff --git a/raven/transport/http.py b/raven/transport/http.py
index a5a0804..fe81d43 100644
--- a/raven/transport/http.py
+++ b/raven/transport/http.py
@@ -15,7 +15,6 @@ from raven.utils.http import urlopen
class HTTPTransport(Transport):
- scheme = ['sync+http', 'sync+https']
def __init__(self, timeout=defaults.TIMEOUT, verify_ssl=True,
ca_certs=defaults.CA_BUNDLE):
diff --git a/raven/transport/registry.py b/raven/transport/registry.py
deleted file mode 100644
index 9f5d3c5..0000000
--- a/raven/transport/registry.py
+++ /dev/null
@@ -1,75 +0,0 @@
-"""
-raven.transport.registry
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
-:license: BSD, see LICENSE for more details.
-"""
-from __future__ import absolute_import
-
-# TODO(dcramer): we really should need to import all of these by default
-from raven.transport.eventlet import EventletHTTPTransport
-from raven.transport.exceptions import DuplicateScheme
-from raven.transport.http import HTTPTransport
-from raven.transport.gevent import GeventedHTTPTransport
-from raven.transport.requests import RequestsHTTPTransport
-from raven.transport.threaded import ThreadedHTTPTransport
-from raven.transport.threaded_requests import ThreadedRequestsHTTPTransport
-from raven.transport.twisted import TwistedHTTPTransport
-from raven.transport.tornado import TornadoHTTPTransport
-from raven.utils import urlparse
-
-
-class TransportRegistry(object):
- def __init__(self, transports=None):
- # setup a default list of senders
- self._schemes = {}
- self._transports = {}
-
- if transports:
- for transport in transports:
- self.register_transport(transport)
-
- def register_transport(self, transport):
- if not hasattr(transport, 'scheme') or not hasattr(transport.scheme, '__iter__'):
- raise AttributeError('Transport %s must have a scheme list', transport.__class__.__name__)
-
- for scheme in transport.scheme:
- self.register_scheme(scheme, transport)
-
- def register_scheme(self, scheme, cls):
- """
- It is possible to inject new schemes at runtime
- """
- if scheme in self._schemes:
- raise DuplicateScheme()
-
- urlparse.register_scheme(scheme)
- # TODO (vng): verify the interface of the new class
- self._schemes[scheme] = cls
-
- def supported_scheme(self, scheme):
- return scheme in self._schemes
-
- def get_transport(self, parsed_url, **options):
- full_url = parsed_url.geturl()
- if full_url not in self._transports:
- # Remove the options from the parsed_url
- parsed_url = urlparse.urlparse(full_url.split('?')[0])
- self._transports[full_url] = self._schemes[parsed_url.scheme](parsed_url, **options)
- return self._transports[full_url]
-
- def get_transport_cls(self, scheme):
- return self._schemes[scheme]
-
-
-default_transports = [
- HTTPTransport,
- ThreadedHTTPTransport,
- GeventedHTTPTransport,
- TwistedHTTPTransport,
- RequestsHTTPTransport,
- ThreadedRequestsHTTPTransport,
- TornadoHTTPTransport,
- EventletHTTPTransport,
-]
diff --git a/raven/transport/requests.py b/raven/transport/requests.py
index 8310ef3..111d49d 100644
--- a/raven/transport/requests.py
+++ b/raven/transport/requests.py
@@ -18,8 +18,6 @@ except ImportError:
class RequestsHTTPTransport(HTTPTransport):
- scheme = ['requests+http', 'requests+https']
-
def __init__(self, *args, **kwargs):
if not has_requests:
raise ImportError('RequestsHTTPTransport requires requests.')
diff --git a/raven/transport/threaded.py b/raven/transport/threaded.py
index c2f1088..8ccc4f8 100644
--- a/raven/transport/threaded.py
+++ b/raven/transport/threaded.py
@@ -160,8 +160,6 @@ class AsyncWorker(object):
class ThreadedHTTPTransport(AsyncTransport, HTTPTransport):
- scheme = ['http', 'https', 'threaded+http', 'threaded+https']
-
def get_worker(self):
if not hasattr(self, '_worker') or not self._worker.is_alive():
self._worker = AsyncWorker()
diff --git a/raven/transport/threaded_requests.py b/raven/transport/threaded_requests.py
index cdc05a3..68b878b 100644
--- a/raven/transport/threaded_requests.py
+++ b/raven/transport/threaded_requests.py
@@ -14,8 +14,6 @@ from raven.transport.threaded import AsyncWorker
class ThreadedRequestsHTTPTransport(AsyncTransport, RequestsHTTPTransport):
- scheme = ['threaded+requests+http', 'threaded+requests+https']
-
def get_worker(self):
if not hasattr(self, '_worker'):
self._worker = AsyncWorker()
diff --git a/raven/transport/tornado.py b/raven/transport/tornado.py
index b1a1dec..83ded15 100644
--- a/raven/transport/tornado.py
+++ b/raven/transport/tornado.py
@@ -22,8 +22,6 @@ except ImportError:
class TornadoHTTPTransport(AsyncTransport, HTTPTransport):
- scheme = ['tornado+http', 'tornado+https']
-
def __init__(self, *args, **kwargs):
if not has_tornado:
raise ImportError('TornadoHTTPTransport requires tornado.')
diff --git a/raven/transport/twisted.py b/raven/transport/twisted.py
index e3f19c5..513b86b 100644
--- a/raven/transport/twisted.py
+++ b/raven/transport/twisted.py
@@ -24,7 +24,6 @@ except ImportError:
class TwistedHTTPTransport(AsyncTransport, HTTPTransport):
- scheme = ['twisted+http', 'twisted+https']
def __init__(self, *args, **kwargs):
if not has_twisted:
diff --git a/raven/utils/encoding.py b/raven/utils/encoding.py
index ad42725..3c6f7de 100644
--- a/raven/utils/encoding.py
+++ b/raven/utils/encoding.py
@@ -7,8 +7,6 @@ raven.utils.encoding
"""
from __future__ import absolute_import, unicode_literals
-import warnings
-
from raven.utils.compat import integer_types, text_type, binary_type, \
string_types, PY2
diff --git a/tests/base/tests.py b/tests/base/tests.py
index 5644db0..2e45986 100644
--- a/tests/base/tests.py
+++ b/tests/base/tests.py
@@ -97,7 +97,7 @@ class ClientTest(TestCase):
assert client is not client2
def test_client_picks_up_env_dsn(self):
- DSN = 'sync+http://public:secret@example.com/1'
+ DSN = 'http://public:secret@example.com/1'
PUBLIC_DSN = '//public@example.com/1'
with mock.patch.dict(os.environ, {'SENTRY_DSN': DSN}):
client = Client()
@@ -111,17 +111,18 @@ class ClientTest(TestCase):
should_try.return_value = True
client = Client(
- dsn='sync+http://public:secret@example.com/1'
+ dsn='http://public:secret@example.com/1',
+ transport=HTTPTransport
)
# test error
send.side_effect = Exception()
- client.send_remote('sync+http://example.com/api/store', client.encode({}))
+ client.send_remote('http://example.com/api/store', client.encode({}))
self.assertEquals(client.state.status, client.state.ERROR)
# test recovery
send.side_effect = None
- client.send_remote('sync+http://example.com/api/store', client.encode({}))
+ client.send_remote('http://example.com/api/store', client.encode({}))
self.assertEquals(client.state.status, client.state.ONLINE)
@mock.patch('raven.transport.http.HTTPTransport.send')
@@ -130,18 +131,19 @@ class ClientTest(TestCase):
should_try.return_value = True
client = Client(
- dsn='sync+http://public:secret@example.com/1'
+ dsn='http://public:secret@example.com/1',
+ transport=HTTPTransport
)
# test error
send.side_effect = RateLimited('foo', 5)
- client.send_remote('sync+http://example.com/api/1/store/', client.encode({}))
+ client.send_remote('http://example.com/api/1/store/', client.encode({}))
self.assertEquals(client.state.status, client.state.ERROR)
self.assertEqual(client.state.retry_after, 5)
# test recovery
send.side_effect = None
- client.send_remote('sync+http://example.com/api/1/store/', client.encode({}))
+ client.send_remote('http://example.com/api/1/store/', client.encode({}))
self.assertEquals(client.state.status, client.state.ONLINE)
self.assertEqual(client.state.retry_after, 0)
@@ -225,7 +227,8 @@ class ClientTest(TestCase):
def test_raise_exception_on_send_error(self, should_try, _send_remote):
should_try.return_value = True
client = Client(
- dsn='sync+http://public:secret@example.com/1',
+ dsn='http://public:secret@example.com/1',
+ transport=HTTPTransport
)
# Test for the default behaviour in which a send error is handled by the client
@@ -236,7 +239,8 @@ class ClientTest(TestCase):
# Test for the case in which a send error is raised to the calling frame.
client = Client(
- dsn='sync+http://public:secret@example.com/1',
+ dsn='http://public:secret@example.com/1',
+ transport=HTTPTransport,
raise_send_errors=True,
)
with self.assertRaises(Exception):
@@ -570,9 +574,6 @@ class ClientTest(TestCase):
transport=HTTPTransport)
assert type(client.remote.get_transport()) is HTTPTransport
- client = Client('sync+http://public:secret@example.com/1')
- assert type(client.remote.get_transport()) is HTTPTransport
-
def test_marks_in_app_frames_for_stacktrace(self):
client = TempStoreClient(
include_paths=['foo'],
diff --git a/tests/contrib/django/tests.py b/tests/contrib/django/tests.py
index fbb7e96..c061b9e 100644
--- a/tests/contrib/django/tests.py
+++ b/tests/contrib/django/tests.py
@@ -693,7 +693,8 @@ class DjangoLoggingTest(TestCase):
class CeleryIsolatedClientTest(TestCase):
def setUp(self):
self.client = CeleryClient(
- dsn='sync+http://public:secret@example.com/1'
+ dsn='http://public:secret@example.com/1',
+ transport=HTTPTransport
)
@mock.patch('raven.contrib.django.celery.send_raw')
diff --git a/tests/handlers/logging/tests.py b/tests/handlers/logging/tests.py
index 5b6dc5b..b57e358 100644
--- a/tests/handlers/logging/tests.py
+++ b/tests/handlers/logging/tests.py
@@ -7,6 +7,7 @@ import mock
from raven.utils.compat import iteritems, PY2
from raven.base import Client
from raven.handlers.logging import SentryHandler
+from raven.transport import HTTPTransport
from raven.utils.stacks import iter_stack_frames
from raven.utils.testutils import TestCase
@@ -86,7 +87,8 @@ class LoggingIntegrationTest(TestCase):
should_try.return_value = True
# Test for the default behaviour in which an exception is handled by the client or handler
client = Client(
- dsn='sync+http://public:secret@example.com/1',
+ dsn='http://public:secret@example.com/1',
+ transport=HTTPTransport,
)
handler = SentryHandler(client)
_send_remote.side_effect = Exception()
@@ -96,7 +98,8 @@ class LoggingIntegrationTest(TestCase):
# Test for the case in which a send error is raised to the calling frame.
client = Client(
- dsn='sync+http://public:secret@example.com/1',
+ dsn='http://public:secret@example.com/1',
+ transport=HTTPTransport,
raise_send_errors=True,
)
handler = SentryHandler(client)
diff --git a/tests/new_client.py b/tests/new_client.py
new file mode 100644
index 0000000..1e4e209
--- /dev/null
+++ b/tests/new_client.py
@@ -0,0 +1,68 @@
+
+
+
+class Client(object):
+
+ def __init__(self, dsn=Ellipsis, *args, **kwargs):
+
+ self.dsn = dsn
+ self.environment = Environ() # singleton encapsulating lazy? system properties
+ self.settings = Settings(dsn, *args, **kwargs) # kwargs settings > os.environ variables > defaults
+ self.transport = self.get_transport()
+ self.instrument()
+ self.spool = self.get_spool() # in-memory, to-disk, etc...
+
+ def get_interfaces(self, **kwargs): # returns list of callables
+ return self.settings.get('interfaces')
+
+ def get_instrumentation_hooks(self, **kwargs): # returns list of callables
+ return self.settings.get('instrument_hooks')
+
+ def get_validators(self, **kwargs): # returns list of callables
+ return self.settings.get('validators')
+
+ def get_default_message(self, **kwargs): # returns dictionary
+ return self.settings.get('message_data')
+
+ def instrument(self, force=False):
+ if self.environment.instrumented or force:
+ for hook in self.get_instrument_hooks():
+ try:
+ hook()
+ except Exception:
+ # log.warn("Configuration bla bla...")
+ self.sys_warnings.append({"type": "sys_hook", "message":"Hook ... failed. ")
+
+
+ def capture_exception(self, exception, **kwargs):
+ message = Message(exception, defaults=self.get_default_message(), **kwargs)
+ for interface in self.get_interfaces(**kwargs):
+ try:
+ message = interface.process(message, self.settings, self.environment)
+ except Exception as e:
+ message.add_error(interface, e)
+
+ for validator in self.get_validators(**kwargs):
+ try:
+ message = validator.process(message, self.settings, self.environment)
+ except ValidationError:
+ pass # maybe we can fix it here, purge the offending interface, etc.. ?
+ except Exception:
+ message.add_error(validator, e)
+
+ try:
+ message.send(transport=self.transport, sys_warnings=self.sys_warnings)
+ except NetworkException:
+ message.retry = True
+ self.spool.add(message)
+ except Exception:
+ # add to sys warnings?
+ self.sys_warnings.append({"type":"transport_failed", "message": "Some messages are failing, check logs")
+
+
+
+
+
+
+
+
diff --git a/tests/transport/gevent/tests.py b/tests/transport/gevent/tests.py
index b31efe6..46bb294 100644
--- a/tests/transport/gevent/tests.py
+++ b/tests/transport/gevent/tests.py
@@ -22,7 +22,8 @@ class GeventTransportTest(TestCase):
gevent.monkey.patch_time()
self.addCleanup(reload, time)
self.client = Client(
- dsn="gevent+http://some_username:some_password@localhost:8143/1",
+ dsn="http://some_username:some_password@localhost:8143/1",
+ transport=GeventedHTTPTransport
)
@mock.patch.object(GeventedHTTPTransport, '_done')
diff --git a/tests/transport/requests/test_threaded_requests.py b/tests/transport/requests/test_threaded_requests.py
index 2147962..2059b41 100644
--- a/tests/transport/requests/test_threaded_requests.py
+++ b/tests/transport/requests/test_threaded_requests.py
@@ -23,8 +23,11 @@ class DummyThreadedScheme(ThreadedRequestsHTTPTransport):
class ThreadedTransportTest(TestCase):
def setUp(self):
- self.url = "threaded+requests+http://some_username:some_password@localhost:8143/1"
- self.client = Client(dsn=self.url)
+ self.url = "http://some_username:some_password@localhost:8143/1"
+ self.client = Client(
+ dsn=self.url,
+ transport=ThreadedRequestsHTTPTransport
+ )
@mock.patch('raven.transport.requests.post')
def test_does_send(self, send):
diff --git a/tests/transport/requests/tests.py b/tests/transport/requests/tests.py
index 97bc483..0513416 100644
--- a/tests/transport/requests/tests.py
+++ b/tests/transport/requests/tests.py
@@ -4,12 +4,14 @@ import mock
from raven.utils.testutils import TestCase
from raven.base import Client
+from raven.transport.requests import RequestsHTTPTransport
class RequestsTransportTest(TestCase):
def setUp(self):
self.client = Client(
- dsn="requests+http://some_username:some_password@localhost:8143/1",
+ dsn="http://some_username:some_password@localhost:8143/1",
+ transport=RequestsHTTPTransport
)
@mock.patch('raven.transport.requests.post')
diff --git a/tests/transport/tests.py b/tests/transport/tests.py
index ecec09a..3c08500 100644
--- a/tests/transport/tests.py
+++ b/tests/transport/tests.py
@@ -6,7 +6,6 @@ from raven.base import Client
# Some internal stuff to extend the transport layer
from raven.transport import Transport
-from raven.transport.exceptions import DuplicateScheme
# Simplify comparing dicts with primitive values:
from raven.utils import json
@@ -17,9 +16,7 @@ import pytz
import zlib
-class DummyScheme(Transport):
-
- scheme = ['mock']
+class DummyTransport(Transport):
def __init__(self, timeout=5):
self.timeout = timeout
@@ -34,28 +31,26 @@ class DummyScheme(Transport):
class TransportTest(TestCase):
- def setUp(self):
- try:
- Client.register_scheme('mock', DummyScheme)
- except DuplicateScheme:
- pass
-
def test_basic_config(self):
c = Client(
- dsn="mock://some_username:some_password@localhost:8143/1?timeout=1",
- name="test_server"
+ dsn="http://some_username:some_password@localhost:8143/1?timeout=1",
+ name="test_server",
+ transport=DummyTransport
)
assert c.remote.options == {
'timeout': '1',
}
def test_custom_transport(self):
- c = Client(dsn="mock://some_username:some_password@localhost:8143/1")
+ c = Client(
+ dsn="http://some_username:some_password@localhost:8143/1",
+ transport=DummyTransport
+ )
data = dict(a=42, b=55, c=list(range(50)))
c.send(**data)
- mock_cls = c._transport_cache['mock://some_username:some_password@localhost:8143/1'].get_transport()
+ mock_cls = c._transport_cache['http://some_username:some_password@localhost:8143/1'].get_transport()
print(mock_cls.__dict__)
expected_message = zlib.decompress(c.encode(data))
@@ -70,8 +65,10 @@ class TransportTest(TestCase):
def test_build_then_send(self):
c = Client(
- dsn="mock://some_username:some_password@localhost:8143/1",
- name="test_server")
+ dsn="http://some_username:some_password@localhost:8143/1",
+ name="test_server",
+ transport=DummyTransport
+ )
mydate = datetime.datetime(2012, 5, 4, tzinfo=pytz.utc)
d = calendar.timegm(mydate.timetuple())
diff --git a/tests/transport/threaded/tests.py b/tests/transport/threaded/tests.py
index e07e0b0..2e96929 100644
--- a/tests/transport/threaded/tests.py
+++ b/tests/transport/threaded/tests.py
@@ -36,8 +36,11 @@ class LoggingThreadedScheme(ThreadedHTTPTransport):
class ThreadedTransportTest(TestCase):
def setUp(self):
- self.url = "threaded+http://some_username:some_password@localhost:8143/1"
- self.client = Client(dsn=self.url)
+ self.url = "http://some_username:some_password@localhost:8143/1"
+ self.client = Client(
+ dsn=self.url,
+ transport=ThreadedHTTPTransport
+ )
@mock.patch('raven.transport.http.HTTPTransport.send')
def test_does_send(self, send):
diff --git a/tests/transport/tornado/tests.py b/tests/transport/tornado/tests.py
index 351b4d4..e1053b7 100644
--- a/tests/transport/tornado/tests.py
+++ b/tests/transport/tornado/tests.py
@@ -3,6 +3,7 @@ from __future__ import absolute_import
import mock
from raven.base import Client
+from raven.transport import TornadoHTTPTransport
from tornado import gen, testing, httpclient
@@ -19,12 +20,13 @@ class TornadoTransportTests(testing.AsyncTestCase):
timeout = 1
verify_ssl = 1
ca_certs = "/some/path/somefile"
+ dsn_string = "{0}?timeout={1}&verify_ssl={2}&ca_certs={3}"
fake = fake_client.return_value
raven_client = Client(
- dsn="tornado+{0}?timeout={1}&verify_ssl={2}&ca_certs={3}".
- format(url, timeout, verify_ssl, ca_certs))
-
+ dsn=dsn_string.format(url, timeout, verify_ssl, ca_certs),
+ transport=TornadoHTTPTransport
+ )
raven_client.captureMessage(message="test")
# make sure an instance of HTTPClient was created, since we are not in
@@ -43,7 +45,10 @@ class TornadoTransportTests(testing.AsyncTestCase):
@testing.gen_test
def test__sending_with_error_calls_error_callback(self):
- c = Client(dsn='tornado+http://uver:pass@localhost:46754/1')
+ c = Client(
+ dsn='http://user:pass@localhost:46754/1',
+ transport=TornadoHTTPTransport
+ )
with mock.patch.object(Client, '_failed_send') as mock_failed:
c.captureMessage(message='test')
@@ -53,7 +58,10 @@ class TornadoTransportTests(testing.AsyncTestCase):
@testing.gen_test
def test__sending_successfully_calls_success_callback(self):
- c = Client(dsn='tornado+http://uver:pass@localhost:46754/1')
+ c = Client(
+ dsn='http://user:pass@localhost:46754/1',
+ transport=TornadoHTTPTransport
+ )
with mock.patch.object(Client, '_successful_send') as mock_successful:
with mock.patch.object(httpclient.AsyncHTTPClient, 'fetch') as mock_fetch:
mock_fetch.return_value = gen.maybe_future(True)