MCPcopy Index your code
hub / github.com/mongodb/mongo-python-driver / test

Function test

test/mockupdb/test_mongos_command_read_mode.py:79–118  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

77
78def create_mongos_read_mode_test(mode, operation):
79 def test(self):
80 server = MockupDB()
81 self.addCleanup(server.stop)
82 server.run()
83 server.autoresponds(
84 "ismaster",
85 ismaster=True,
86 msg="isdbgrid",
87 minWireVersion=2,
88 maxWireVersion=MIN_SUPPORTED_WIRE_VERSION,
89 )
90
91 pref = make_read_preference(read_pref_mode_from_name(mode), tag_sets=None)
92
93 client = MongoClient(server.uri, read_preference=pref)
94 self.addCleanup(client.close)
95
96 with going(operation.function, client):
97 request = server.receive()
98 request.reply(operation.reply)
99
100 if operation.op_type == "always-use-secondary":
101 self.assertEqual(ReadPreference.SECONDARY.document, request.doc.get("$readPreference"))
102 slave_ok = mode != "primary"
103 elif operation.op_type == "must-use-primary":
104 slave_ok = False
105 elif operation.op_type == "may-use-secondary":
106 slave_ok = mode != "primary"
107 actual_pref = request.doc.get("$readPreference")
108 if mode == "primary":
109 self.assertIsNone(actual_pref)
110 else:
111 self.assertEqual(pref.document, actual_pref)
112 else:
113 self.fail("unrecognized op_type %r" % operation.op_type)
114
115 if slave_ok:
116 self.assertTrue(request.slave_ok, "SlaveOkay not set")
117 else:
118 self.assertFalse(request.slave_ok, "SlaveOkay set")
119
120 return test
121

Callers

nothing calls this directly

Calls 7

make_read_preferenceFunction · 0.90
read_pref_mode_from_nameFunction · 0.90
MongoClientClass · 0.90
addCleanupMethod · 0.80
runMethod · 0.45
replyMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected