use cursorInfo command instead of intr collection

This commit is contained in:
Mike Dirolf 2009-02-23 18:05:20 -05:00
parent 92f671958d
commit 28d2d0cbb0
2 changed files with 17 additions and 18 deletions

View File

@ -282,48 +282,47 @@ class TestCursor(unittest.TestCase):
def test_kill_cursors(self):
db = self.db
db.drop_collection("test")
intr = self.db.connection().intr
client_cursors = intr.cursors.find_one()["clientCursors_size"]
by_location = intr.cursors.find_one()["byLocation_size"]
client_cursors = db._command({"cursorInfo": 1})["clientCursors_size"]
by_location = db._command({"cursorInfo": 1})["byLocation_size"]
for i in range(10000):
db.test.insert({"i": i})
self.assertEqual(client_cursors, intr.cursors.find_one()["clientCursors_size"])
self.assertEqual(by_location, intr.cursors.find_one()["byLocation_size"])
self.assertEqual(client_cursors, db._command({"cursorInfo": 1})["clientCursors_size"])
self.assertEqual(by_location, db._command({"cursorInfo": 1})["byLocation_size"])
for _ in range(10):
db.test.find_one()
self.assertEqual(client_cursors, intr.cursors.find_one()["clientCursors_size"])
self.assertEqual(by_location, intr.cursors.find_one()["byLocation_size"])
self.assertEqual(client_cursors, db._command({"cursorInfo": 1})["clientCursors_size"])
self.assertEqual(by_location, db._command({"cursorInfo": 1})["byLocation_size"])
for _ in range(10):
for x in db.test.find():
break
self.assertEqual(client_cursors, intr.cursors.find_one()["clientCursors_size"])
self.assertEqual(by_location, intr.cursors.find_one()["byLocation_size"])
self.assertEqual(client_cursors, db._command({"cursorInfo": 1})["clientCursors_size"])
self.assertEqual(by_location, db._command({"cursorInfo": 1})["byLocation_size"])
a = db.test.find()
for x in a:
break
self.assertNotEqual(client_cursors, intr.cursors.find_one()["clientCursors_size"])
self.assertNotEqual(by_location, intr.cursors.find_one()["byLocation_size"])
self.assertNotEqual(client_cursors, db._command({"cursorInfo": 1})["clientCursors_size"])
self.assertNotEqual(by_location, db._command({"cursorInfo": 1})["byLocation_size"])
del a
self.assertEqual(client_cursors, intr.cursors.find_one()["clientCursors_size"])
self.assertEqual(by_location, intr.cursors.find_one()["byLocation_size"])
self.assertEqual(client_cursors, db._command({"cursorInfo": 1})["clientCursors_size"])
self.assertEqual(by_location, db._command({"cursorInfo": 1})["byLocation_size"])
a = db.test.find().limit(10)
for x in a:
break
self.assertEqual(client_cursors, intr.cursors.find_one()["clientCursors_size"])
self.assertEqual(by_location, intr.cursors.find_one()["byLocation_size"])
self.assertEqual(client_cursors, db._command({"cursorInfo": 1})["clientCursors_size"])
self.assertEqual(by_location, db._command({"cursorInfo": 1})["byLocation_size"])
if __name__ == "__main__":
unittest.main()

View File

@ -12,17 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
"""Jim's benchmarking suite
"""Python implementation of the MongoDB benchmarking suite.
"""
import datetime
import timeit
import sys
sys.path[0:0] = [""]
from pymongo.connection import Connection
from pymongo import ASCENDING
N = 30000
N = 1000000
def timed(function, db):
before = datetime.datetime.now()