Merge pull request #1668 from erdenezul/read_preference_parse
parse read_preference from conn_host #1665
This commit is contained in:
commit
032ace40d1
@ -104,6 +104,18 @@ def register_connection(alias, db=None, 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 IS_PYMONGO_3 and 'readpreference' in uri_options:
|
||||||
|
read_preferences = (
|
||||||
|
ReadPreference.NEAREST,
|
||||||
|
ReadPreference.PRIMARY,
|
||||||
|
ReadPreference.PRIMARY_PREFERRED,
|
||||||
|
ReadPreference.SECONDARY,
|
||||||
|
ReadPreference.SECONDARY_PREFERRED)
|
||||||
|
read_pf_mode = uri_options['readpreference'].lower()
|
||||||
|
for preference in read_preferences:
|
||||||
|
if preference.name.lower() == 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,12 @@ 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):
|
||||||
|
if IS_PYMONGO_3:
|
||||||
|
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