From b401cd2ea73d14f57e19bf0c7f77406d80c3293c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 6 Mar 2007 17:17:27 +0000 Subject: [PATCH] decorated ImportError thrown when the :// module isnt found --- lib/sqlalchemy/engine/url.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/sqlalchemy/engine/url.py b/lib/sqlalchemy/engine/url.py index 6a0180d620..8f9d33d54b 100644 --- a/lib/sqlalchemy/engine/url.py +++ b/lib/sqlalchemy/engine/url.py @@ -1,5 +1,6 @@ import re import cgi +import sys import urllib from sqlalchemy import exceptions @@ -70,8 +71,12 @@ class URL(object): def get_module(self): """Return the SQLAlchemy database module corresponding to this URL's driver name.""" - - return getattr(__import__('sqlalchemy.databases.%s' % self.drivername).databases, self.drivername) + try: + return getattr(__import__('sqlalchemy.databases.%s' % self.drivername).databases, self.drivername) + except ImportError: + if sys.exc_info()[2].tb_next is None: + raise exceptions.ArgumentError('unknown database %r' % self.drivername) + raise def translate_connect_args(self, names): """Translate this URL's attributes into a dictionary of connection arguments. -- 2.47.2