MCPcopy Create free account
hub / github.com/mongodb/mongo-python-driver / test

Function test

test/mockupdb/test_op_msg_read_preference.py:151–186  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

149
150def create_op_msg_read_mode_test(mode, operation):
151 def test(self):
152 pref = make_read_preference(read_pref_mode_from_name(mode), tag_sets=None)
153
154 client = self.setup_client(read_preference=pref)
155 expected_pref: Any
156 if operation.op_type == "always-use-secondary":
157 expected_server = self.secondary
158 expected_pref = ReadPreference.SECONDARY
159 elif operation.op_type == "must-use-primary":
160 expected_server = self.primary
161 expected_pref = None
162 elif operation.op_type == "may-use-secondary":
163 if mode == "primary":
164 expected_server = self.primary
165 expected_pref = None
166 elif mode == "primaryPreferred":
167 expected_server = self.primary
168 expected_pref = pref
169 else:
170 expected_server = self.secondary
171 expected_pref = pref
172 else:
173 self.fail("unrecognized op_type %r" % operation.op_type)
174 # For single mongod we omit the read preference.
175 if self.single_mongod:
176 expected_pref = None
177 with going(operation.function, client):
178 request = expected_server.receive()
179 request.reply(operation.reply)
180
181 actual_pref = request.doc.get("$readPreference")
182 if expected_pref:
183 self.assertEqual(expected_pref.document, actual_pref)
184 else:
185 self.assertIsNone(actual_pref)
186 self.assertNotIn("$query", request.doc)
187
188 return test
189

Callers

nothing calls this directly

Calls 5

make_read_preferenceFunction · 0.90
read_pref_mode_from_nameFunction · 0.90
setup_clientMethod · 0.45
replyMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected