Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
[MESSAGES CONTROL]
disable=too-few-public-methods,fixme,no-member,duplicate-code,useless-object-inheritance
[DESIGN]
max-args=7
9 changes: 5 additions & 4 deletions indexdigest/database.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class DatabaseBase(object):
Sub-class this to mock database connection
"""

def __init__(self, host, user, passwd, db):
def __init__(self, host, user, passwd, db, port=3306):
"""
Connects to a given database

Expand All @@ -40,7 +40,7 @@ def __init__(self, host, user, passwd, db):
self.query_logger = logging.getLogger(__name__ + '.query')

# lazy connect
self._connection_params = dict(host=host, user=user, passwd=passwd, db=db)
self._connection_params = dict(host=host, port=port, user=user, passwd=passwd, db=db)
self._connection = None
self.db_name = db

Expand All @@ -67,8 +67,9 @@ def connection(self):
:rtype: Connection
"""
if self._connection is None:
self.logger.info('Lazy connecting to %s and using %s database',
self._connection_params['host'], self._connection_params['db'])
self.logger.info('Lazy connecting to %s:%i and using %s database',
self._connection_params['host'], self._connection_params['port'],
self._connection_params['db'])

self._connection = MySQLdb.connect(**self._connection_params)

Expand Down
10 changes: 10 additions & 0 deletions indexdigest/test/core/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@ def test_parse_dsn(self):
parsed = parse_dsn('mysql://alex:pwd@localhost/test')

self.assertEqual('localhost', parsed['host'])
self.assertEqual(3306, parsed['port'])
self.assertEqual('alex', parsed['user'])
self.assertEqual('pwd', parsed['passwd'])
self.assertEqual('test', parsed['db'])

def test_parse_dsn_with_port(self):
parsed = parse_dsn('mysql://alex:pwd@localhost:5000/test')

self.assertEqual('localhost', parsed['host'])
self.assertEqual(5000, parsed['port'])
self.assertEqual('alex', parsed['user'])
self.assertEqual('pwd', parsed['passwd'])
self.assertEqual('test', parsed['db'])
Expand Down
1 change: 1 addition & 0 deletions indexdigest/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ def parse_dsn(dsn):

return {
'host': parsed.hostname,
'port': int(parsed.port) if parsed.port else 3306,
'user': parsed.username,
'passwd': parsed.password,
'db': str(parsed.path).lstrip('/')
Expand Down