PYTHON-1299 - Use new wire version in tests
This commit is contained in:
parent
d99b026f8d
commit
b273d94358
@ -144,9 +144,11 @@ class MockClient(MongoClient):
|
||||
|
||||
def mock_is_master(self, host):
|
||||
"""Return mock ismaster response (a dict) and round trip time."""
|
||||
min_wire_version, max_wire_version = self.mock_wire_versions.get(
|
||||
host,
|
||||
(common.MIN_WIRE_VERSION, common.MAX_WIRE_VERSION))
|
||||
if host in self.mock_wire_versions:
|
||||
min_wire_version, max_wire_version = self.mock_wire_versions[host]
|
||||
else:
|
||||
min_wire_version = common.MIN_SUPPORTED_WIRE_VERSION
|
||||
max_wire_version = common.MAX_SUPPORTED_WIRE_VERSION
|
||||
|
||||
max_write_batch_size = self.mock_max_write_batch_sizes.get(
|
||||
host, common.MAX_WRITE_BATCH_SIZE)
|
||||
|
||||
@ -1364,8 +1364,8 @@ class TestMongoClientFailover(MockClientTest):
|
||||
connect=False)
|
||||
|
||||
# Set host-specific information so we can test whether it is reset.
|
||||
c.set_wire_version_range('a:1', 0, 1)
|
||||
c.set_wire_version_range('b:2', 0, 2)
|
||||
c.set_wire_version_range('a:1', 2, 6)
|
||||
c.set_wire_version_range('b:2', 2, 7)
|
||||
c._get_topology().select_servers(writable_server_selector)
|
||||
wait_until(lambda: len(c.nodes) == 2, 'connect')
|
||||
|
||||
@ -1385,8 +1385,8 @@ class TestMongoClientFailover(MockClientTest):
|
||||
server_b = c._get_topology().get_server_by_address(('b', 2))
|
||||
sd_b = server_b.description
|
||||
self.assertEqual(SERVER_TYPE.RSSecondary, sd_b.server_type)
|
||||
self.assertEqual(0, sd_b.min_wire_version)
|
||||
self.assertEqual(2, sd_b.max_wire_version)
|
||||
self.assertEqual(2, sd_b.min_wire_version)
|
||||
self.assertEqual(7, sd_b.max_wire_version)
|
||||
|
||||
def test_network_error_on_query(self):
|
||||
callback = lambda client: client.db.collection.find_one()
|
||||
|
||||
@ -331,13 +331,11 @@ class TestReplicaSetWireVersion(MockClientTest):
|
||||
replicaSet='rs',
|
||||
connect=False)
|
||||
|
||||
c.set_wire_version_range('a:1', 1, 5)
|
||||
c.set_wire_version_range('b:2', 0, 1)
|
||||
c.set_wire_version_range('c:3', 1, 2)
|
||||
c.set_wire_version_range('a:1', 3, 7)
|
||||
c.set_wire_version_range('b:2', 2, 3)
|
||||
c.set_wire_version_range('c:3', 3, 4)
|
||||
c.db.command('ismaster') # Connect.
|
||||
|
||||
c.set_wire_version_range('a:1', 2, 2)
|
||||
|
||||
# A secondary doesn't overlap with us.
|
||||
c.set_wire_version_range('b:2',
|
||||
MAX_SUPPORTED_WIRE_VERSION + 1,
|
||||
|
||||
@ -174,35 +174,41 @@ class TestSingleServerTopology(TopologyTest):
|
||||
'ok': 1,
|
||||
'ismaster': True,
|
||||
'hosts': ['a'],
|
||||
'setName': 'rs'}),
|
||||
'setName': 'rs',
|
||||
'maxWireVersion': 6}),
|
||||
|
||||
(SERVER_TYPE.RSSecondary, {
|
||||
'ok': 1,
|
||||
'ismaster': False,
|
||||
'secondary': True,
|
||||
'hosts': ['a'],
|
||||
'setName': 'rs'}),
|
||||
'setName': 'rs',
|
||||
'maxWireVersion': 6}),
|
||||
|
||||
(SERVER_TYPE.Mongos, {
|
||||
'ok': 1,
|
||||
'ismaster': True,
|
||||
'msg': 'isdbgrid'}),
|
||||
'msg': 'isdbgrid',
|
||||
'maxWireVersion': 6}),
|
||||
|
||||
(SERVER_TYPE.RSArbiter, {
|
||||
'ok': 1,
|
||||
'ismaster': False,
|
||||
'arbiterOnly': True,
|
||||
'hosts': ['a'],
|
||||
'setName': 'rs'}),
|
||||
'setName': 'rs',
|
||||
'maxWireVersion': 6}),
|
||||
|
||||
(SERVER_TYPE.Standalone, {
|
||||
'ok': 1,
|
||||
'ismaster': True}),
|
||||
'ismaster': True,
|
||||
'maxWireVersion': 6}),
|
||||
|
||||
# Slave.
|
||||
(SERVER_TYPE.Standalone, {
|
||||
'ok': 1,
|
||||
'ismaster': False}),
|
||||
'ismaster': False,
|
||||
'maxWireVersion': 6}),
|
||||
]:
|
||||
t = create_mock_topology()
|
||||
|
||||
@ -250,7 +256,8 @@ class TestSingleServerTopology(TopologyTest):
|
||||
class TestMonitor(Monitor):
|
||||
def _check_with_socket(self, sock_info, metadata=None):
|
||||
if available:
|
||||
return IsMaster({'ok': 1}), round_trip_time
|
||||
return (IsMaster({'ok': 1, 'maxWireVersion': 6}),
|
||||
round_trip_time)
|
||||
else:
|
||||
raise AutoReconnect('mock monitor error')
|
||||
|
||||
@ -577,6 +584,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
'ismaster': True,
|
||||
'setName': 'rs',
|
||||
'hosts': ['a', 'b'],
|
||||
'maxWireVersion': 6,
|
||||
'maxWriteBatchSize': 1})
|
||||
|
||||
got_ismaster(t, ('b', 27017), {
|
||||
@ -585,6 +593,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
'secondary': True,
|
||||
'setName': 'rs',
|
||||
'hosts': ['a', 'b'],
|
||||
'maxWireVersion': 6,
|
||||
'maxWriteBatchSize': 2})
|
||||
|
||||
# Uses primary's max batch size.
|
||||
@ -596,6 +605,7 @@ class TestMultiServerTopology(TopologyTest):
|
||||
'ismaster': True,
|
||||
'setName': 'rs',
|
||||
'hosts': ['a', 'b'],
|
||||
'maxWireVersion': 6,
|
||||
'maxWriteBatchSize': 2})
|
||||
|
||||
self.assertEqual(2, write_batch_size())
|
||||
@ -629,7 +639,7 @@ class TestTopologyErrors(TopologyTest):
|
||||
def _check_with_socket(self, sock_info, metadata=None):
|
||||
ismaster_count[0] += 1
|
||||
if ismaster_count[0] == 1:
|
||||
return IsMaster({'ok': 1}), 0
|
||||
return IsMaster({'ok': 1, 'maxWireVersion': 6}), 0
|
||||
else:
|
||||
raise AutoReconnect('mock monitor error')
|
||||
|
||||
@ -650,7 +660,7 @@ class TestTopologyErrors(TopologyTest):
|
||||
def _check_with_socket(self, sock_info, metadata=None):
|
||||
ismaster_count[0] += 1
|
||||
if ismaster_count[0] in (1, 3):
|
||||
return IsMaster({'ok': 1}), 0
|
||||
return IsMaster({'ok': 1, 'maxWireVersion': 6}), 0
|
||||
else:
|
||||
raise AutoReconnect('mock monitor error')
|
||||
|
||||
|
||||
@ -116,6 +116,8 @@ def make_server_description(server, hosts):
|
||||
if field in server:
|
||||
ismaster_response[field] = server[field]
|
||||
|
||||
ismaster_response.setdefault('maxWireVersion', 6)
|
||||
|
||||
# Sets _last_update_time to now.
|
||||
sd = ServerDescription(clean_node(server['address']),
|
||||
IsMaster(ismaster_response),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user