parse read_preference from conn_host #1665
This commit is contained in:
parent
a1494c4c93
commit
2f075be6f8
@ -103,6 +103,17 @@ def register_connection(alias, name=None, host=None, port=None,
|
|||||||
conn_settings['authentication_source'] = uri_options['authsource']
|
conn_settings['authentication_source'] = uri_options['authsource']
|
||||||
if 'authmechanism' in uri_options:
|
if 'authmechanism' in uri_options:
|
||||||
conn_settings['authentication_mechanism'] = uri_options['authmechanism']
|
conn_settings['authentication_mechanism'] = uri_options['authmechanism']
|
||||||
|
if 'readpreference' in uri_options:
|
||||||
|
read_preferences = (ReadPreference.NEAREST,
|
||||||
|
ReadPreference.PRIMARY,
|
||||||
|
ReadPreference.PRIMARY_PREFERRED,
|
||||||
|
ReadPreference.SECONDARY,
|
||||||
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
read_pf_mode = uri_options['readpreference']
|
||||||
|
for preference in read_preferences:
|
||||||
|
if preference.mode == read_pf_mode:
|
||||||
|
conn_settings['read_preference'] = preference
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
resolved_hosts.append(entity)
|
resolved_hosts.append(entity)
|
||||||
conn_settings['host'] = resolved_hosts
|
conn_settings['host'] = resolved_hosts
|
||||||
|
@ -364,6 +364,11 @@ class ConnectionTest(unittest.TestCase):
|
|||||||
date_doc = DateDoc.objects.first()
|
date_doc = DateDoc.objects.first()
|
||||||
self.assertEqual(d, date_doc.the_date)
|
self.assertEqual(d, date_doc.the_date)
|
||||||
|
|
||||||
|
def test_read_preference_from_parse(self):
|
||||||
|
from pymongo import ReadPreference
|
||||||
|
conn = connect(host="mongodb://a1.vpc,a2.vpc,a3.vpc/prod?readPreference=secondaryPreferred")
|
||||||
|
self.assertEqual(conn.read_preference, ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
|
||||||
def test_multiple_connection_settings(self):
|
def test_multiple_connection_settings(self):
|
||||||
connect('mongoenginetest', alias='t1', host="localhost")
|
connect('mongoenginetest', alias='t1', host="localhost")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user