def test_hint(self): yield self.coll.create_index(qf.sort(qf.ASCENDING('x'))) yield self.db.command("profile", 2) cnt = yield self.coll.count(hint=qf.hint(qf.ASCENDING('x'))) self.assertEqual(cnt, 3) yield self.db.command("profile", 0) cmds = yield self.db.system.profile.count({"command.hint": {"x": 1}}) self.assertEqual(cmds, 1) self.assertRaises(TypeError, self.coll.count, hint={'x': 1}) self.assertRaises(TypeError, self.coll.count, hint=[('x', 1)])
def test_Hint(self): # find() should fail with 'bad hint' if hint specifier works correctly self.assertFailure(self.coll.find({}, filter=qf.hint([('x', 1)])), OperationFailure) # create index and test it is honoured yield self.coll.create_index(qf.sort(qf.ASCENDING("x")), name="test_index") found_1 = yield self.coll.find({}, filter=qf.hint([('x', 1)])) found_2 = yield self.coll.find({}, filter=qf.hint(qf.ASCENDING("x"))) found_3 = yield self.coll.find({}, filter=qf.hint("test_index")) self.assertTrue(found_1 == found_2 == found_3) # find() should fail with 'bad hint' if hint specifier works correctly self.assertFailure(self.coll.find({}, filter=qf.hint(["test_index", 1])), OperationFailure) self.assertFailure(self.coll.find({}, filter=qf.hint(qf.ASCENDING("test_index"))), OperationFailure)
def test_Hint(self): # find() should fail with 'bad hint' if hint specifier works correctly self.assertFailure(self.coll.find({}, filter=qf.hint([('x', 1)])), OperationFailure) # create index and test it is honoured yield self.coll.create_index(qf.sort(qf.ASCENDING("x")), name="test_index") found_1 = yield self.coll.find({}, filter=qf.hint([('x', 1)])) found_2 = yield self.coll.find({}, filter=qf.hint(qf.ASCENDING("x"))) found_3 = yield self.coll.find({}, filter=qf.hint("test_index")) self.assertTrue(found_1 == found_2 == found_3) # find() should fail with 'bad hint' if hint specifier works correctly self.assertFailure( self.coll.find({}, filter=qf.hint(["test_index", 1])), OperationFailure) self.assertFailure( self.coll.find({}, filter=qf.hint(qf.ASCENDING("test_index"))), OperationFailure)
def test_Hint(self): # Ensure there is no {x:1} index yield self.coll.dropIndex([('x', 1)]) # find() should fail with 'bad hint' if hint specifier works correctly self.assertFailure(self.coll.find({}, filter=qf.hint([('x', 1)])), OperationFailure)