PYTHON-3523 Remove getNonce command usage for 6.2+ (#1135)
This commit is contained in:
parent
a4c90ae157
commit
24170dd523
@ -100,7 +100,7 @@ do
|
||||
rm $PYMONGO/test/cmap/wait-queue-fairness.json # PYTHON-1873
|
||||
;;
|
||||
apm|APM|command-monitoring|command_monitoring)
|
||||
cpjson command-monitoring/tests command_monitoring
|
||||
cpjson command-logging-and-monitoring/tests/monitoring command_monitoring
|
||||
;;
|
||||
crud|CRUD)
|
||||
cpjson crud/tests/ crud
|
||||
|
||||
154
test/command_monitoring/bulkWrite.json
Normal file
154
test/command_monitoring/bulkWrite.json
Normal file
@ -0,0 +1,154 @@
|
||||
{
|
||||
"description": "bulkWrite",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful mixed bulk write",
|
||||
"operations": [
|
||||
{
|
||||
"name": "bulkWrite",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"requests": [
|
||||
{
|
||||
"insertOne": {
|
||||
"document": {
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"updateOne": {
|
||||
"filter": {
|
||||
"_id": 3
|
||||
},
|
||||
"update": {
|
||||
"$set": {
|
||||
"x": 333
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"commandName": "insert"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 3
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 333
|
||||
}
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "update",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"commandName": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
83
test/command_monitoring/command.json
Normal file
83
test/command_monitoring/command.json
Normal file
@ -0,0 +1,83 @@
|
||||
{
|
||||
"description": "command",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful command",
|
||||
"operations": [
|
||||
{
|
||||
"name": "runCommand",
|
||||
"object": "database",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"ping": 1
|
||||
},
|
||||
"commandName": "ping"
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"ping": 1
|
||||
},
|
||||
"commandName": "ping",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1
|
||||
},
|
||||
"commandName": "ping"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
162
test/command_monitoring/deleteMany.json
Normal file
162
test/command_monitoring/deleteMany.json
Normal file
@ -0,0 +1,162 @@
|
||||
{
|
||||
"description": "deleteMany",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful deleteMany",
|
||||
"operations": [
|
||||
{
|
||||
"name": "deleteMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"limit": 0
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "delete",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 2
|
||||
},
|
||||
"commandName": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful deleteMany with write errors",
|
||||
"operations": [
|
||||
{
|
||||
"name": "deleteMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$unsupported": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isClientError": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$unsupported": 1
|
||||
}
|
||||
},
|
||||
"limit": 0
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "delete",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": {
|
||||
"$$type": "array"
|
||||
}
|
||||
},
|
||||
"commandName": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
162
test/command_monitoring/deleteOne.json
Normal file
162
test/command_monitoring/deleteOne.json
Normal file
@ -0,0 +1,162 @@
|
||||
{
|
||||
"description": "deleteOne",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful deleteOne",
|
||||
"operations": [
|
||||
{
|
||||
"name": "deleteOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "delete",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"commandName": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful deleteOne with write errors",
|
||||
"operations": [
|
||||
{
|
||||
"name": "deleteOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$unsupported": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isClientError": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$unsupported": 1
|
||||
}
|
||||
},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "delete",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": {
|
||||
"$$type": "array"
|
||||
}
|
||||
},
|
||||
"commandName": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
550
test/command_monitoring/find.json
Normal file
550
test/command_monitoring/find.json
Normal file
@ -0,0 +1,550 @@
|
||||
{
|
||||
"description": "find",
|
||||
"schemaVersion": "1.1",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"_yamlAnchors": {
|
||||
"namespace": "command-monitoring-tests.test"
|
||||
},
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
},
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
},
|
||||
{
|
||||
"_id": 5,
|
||||
"x": 55
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful find with no options",
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": 0,
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "find"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find with options",
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"x": -1
|
||||
},
|
||||
"projection": {
|
||||
"_id": 0,
|
||||
"x": 1
|
||||
},
|
||||
"skip": 2,
|
||||
"comment": "test",
|
||||
"hint": {
|
||||
"_id": 1
|
||||
},
|
||||
"max": {
|
||||
"_id": 6
|
||||
},
|
||||
"maxTimeMS": 6000,
|
||||
"min": {
|
||||
"_id": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"x": -1
|
||||
},
|
||||
"projection": {
|
||||
"_id": 0,
|
||||
"x": 1
|
||||
},
|
||||
"skip": 2,
|
||||
"comment": "test",
|
||||
"hint": {
|
||||
"_id": 1
|
||||
},
|
||||
"max": {
|
||||
"_id": 6
|
||||
},
|
||||
"maxTimeMS": 6000,
|
||||
"min": {
|
||||
"_id": 0
|
||||
}
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": 0,
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"x": 33
|
||||
},
|
||||
{
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "find"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find with showRecordId and returnKey",
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"showRecordId": true,
|
||||
"returnKey": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"showRecordId": true,
|
||||
"returnKey": true
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": 0,
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1
|
||||
},
|
||||
{
|
||||
"_id": 2
|
||||
},
|
||||
{
|
||||
"_id": 3
|
||||
},
|
||||
{
|
||||
"_id": 4
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "find"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find with a getMore",
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": 3
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$$type": [
|
||||
"int",
|
||||
"long"
|
||||
]
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "find"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"getMore": {
|
||||
"$$type": [
|
||||
"int",
|
||||
"long"
|
||||
]
|
||||
},
|
||||
"collection": "test",
|
||||
"batchSize": 3
|
||||
},
|
||||
"commandName": "getMore",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": 0,
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"nextBatch": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
},
|
||||
{
|
||||
"_id": 5,
|
||||
"x": 55
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "getMore"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find event with a getmore and the server kills the cursor (<= 4.4)",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "3.1",
|
||||
"maxServerVersion": "4.4.99",
|
||||
"topologies": [
|
||||
"single",
|
||||
"replicaset"
|
||||
]
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": 3,
|
||||
"limit": 4
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": 3,
|
||||
"limit": 4
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$$type": [
|
||||
"int",
|
||||
"long"
|
||||
]
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "find"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"getMore": {
|
||||
"$$type": [
|
||||
"int",
|
||||
"long"
|
||||
]
|
||||
},
|
||||
"collection": "test",
|
||||
"batchSize": 1
|
||||
},
|
||||
"commandName": "getMore",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": 0,
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"nextBatch": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "getMore"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A failed find event",
|
||||
"operations": [
|
||||
{
|
||||
"name": "find",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"$or": true
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isClientError": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"$or": true
|
||||
}
|
||||
},
|
||||
"commandName": "find",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandFailedEvent": {
|
||||
"commandName": "find"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
148
test/command_monitoring/insertMany.json
Normal file
148
test/command_monitoring/insertMany.json
Normal file
@ -0,0 +1,148 @@
|
||||
{
|
||||
"description": "insertMany",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful insertMany",
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"commandName": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful insertMany with write errors",
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
},
|
||||
"expectError": {
|
||||
"isClientError": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": {
|
||||
"$$type": "array"
|
||||
}
|
||||
},
|
||||
"commandName": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
144
test/command_monitoring/insertOne.json
Normal file
144
test/command_monitoring/insertOne.json
Normal file
@ -0,0 +1,144 @@
|
||||
{
|
||||
"description": "insertOne",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful insertOne",
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"commandName": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful insertOne with write errors",
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isClientError": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": {
|
||||
"$$type": "array"
|
||||
}
|
||||
},
|
||||
"commandName": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,110 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful mixed bulk write",
|
||||
"operation": {
|
||||
"name": "bulkWrite",
|
||||
"arguments": {
|
||||
"requests": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "updateOne",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 3
|
||||
},
|
||||
"update": {
|
||||
"$set": {
|
||||
"x": 333
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "insert"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 3
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 333
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "update",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,113 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful command",
|
||||
"operation": {
|
||||
"name": "count",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"count": "test",
|
||||
"query": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"command_name": "count",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "count"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A failed command event",
|
||||
"operation": {
|
||||
"name": "count",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"$or": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"count": "test",
|
||||
"query": {
|
||||
"$or": true
|
||||
}
|
||||
},
|
||||
"command_name": "count",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_failed_event": {
|
||||
"command_name": "count"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful command with a non-primary read preference",
|
||||
"operation": {
|
||||
"name": "count",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"read_preference": {
|
||||
"mode": "primaryPreferred"
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"count": "test",
|
||||
"query": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"command_name": "count",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "count"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,115 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful delete many",
|
||||
"operation": {
|
||||
"name": "deleteMany",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"limit": 0
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "delete",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 2
|
||||
},
|
||||
"command_name": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful delete many command with write errors",
|
||||
"operation": {
|
||||
"name": "deleteMany",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$nothing": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$nothing": 1
|
||||
}
|
||||
},
|
||||
"limit": 0
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "delete",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": [
|
||||
{
|
||||
"index": 0,
|
||||
"code": 42,
|
||||
"errmsg": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,115 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful delete one",
|
||||
"operation": {
|
||||
"name": "deleteOne",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "delete",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful delete one command with write errors",
|
||||
"operation": {
|
||||
"name": "deleteOne",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$nothing": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "test",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$nothing": 1
|
||||
}
|
||||
},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "delete",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": [
|
||||
{
|
||||
"index": 0,
|
||||
"code": 42,
|
||||
"errmsg": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "delete"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,559 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
},
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
},
|
||||
{
|
||||
"_id": 5,
|
||||
"x": 55
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"namespace": "command-monitoring-tests.test",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful find event with no options",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": 1
|
||||
}
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "0"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "find"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find event with options",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"read_preference": {
|
||||
"mode": "primaryPreferred"
|
||||
},
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"skip": {
|
||||
"$numberLong": "2"
|
||||
},
|
||||
"comment": "test",
|
||||
"hint": {
|
||||
"_id": 1
|
||||
},
|
||||
"max": {
|
||||
"_id": 6
|
||||
},
|
||||
"maxTimeMS": 6000,
|
||||
"min": {
|
||||
"_id": 0
|
||||
},
|
||||
"returnKey": false,
|
||||
"showRecordId": false
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"skip": {
|
||||
"$numberLong": "2"
|
||||
},
|
||||
"comment": "test",
|
||||
"hint": {
|
||||
"_id": 1
|
||||
},
|
||||
"max": {
|
||||
"_id": 6
|
||||
},
|
||||
"maxTimeMS": 6000,
|
||||
"min": {
|
||||
"_id": 0
|
||||
},
|
||||
"returnKey": false,
|
||||
"showRecordId": false
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "0"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
},
|
||||
{
|
||||
"_id": 5,
|
||||
"x": 55
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "find"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find event with a getmore",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": {
|
||||
"$numberLong": "3"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": {
|
||||
"$numberLong": "3"
|
||||
}
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "42"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "find"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"getMore": {
|
||||
"$numberLong": "42"
|
||||
},
|
||||
"collection": "test",
|
||||
"batchSize": {
|
||||
"$numberLong": "3"
|
||||
}
|
||||
},
|
||||
"command_name": "getMore",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "0"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"nextBatch": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
},
|
||||
{
|
||||
"_id": 5,
|
||||
"x": 55
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "getMore"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find event with a getmore and killcursors",
|
||||
"ignore_if_server_version_greater_than": "3.0",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": {
|
||||
"$numberLong": "3"
|
||||
},
|
||||
"limit": {
|
||||
"$numberLong": "4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": {
|
||||
"$numberLong": "3"
|
||||
},
|
||||
"limit": {
|
||||
"$numberLong": "4"
|
||||
}
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "42"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "find"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"getMore": {
|
||||
"$numberLong": "42"
|
||||
},
|
||||
"collection": "test",
|
||||
"batchSize": {
|
||||
"$numberLong": "1"
|
||||
}
|
||||
},
|
||||
"command_name": "getMore",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "42"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"nextBatch": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "getMore"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"killCursors": "test",
|
||||
"cursors": [
|
||||
{
|
||||
"$numberLong": "42"
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "killCursors",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursorsUnknown": [
|
||||
{
|
||||
"$numberLong": "42"
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "killCursors"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful find event with a getmore and the server kills the cursor (<= 4.4)",
|
||||
"ignore_if_server_version_less_than": "3.1",
|
||||
"ignore_if_server_version_greater_than": "4.4",
|
||||
"ignore_if_topology_type": [
|
||||
"sharded"
|
||||
],
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": {
|
||||
"$numberLong": "3"
|
||||
},
|
||||
"limit": {
|
||||
"$numberLong": "4"
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gte": 1
|
||||
}
|
||||
},
|
||||
"sort": {
|
||||
"_id": 1
|
||||
},
|
||||
"batchSize": {
|
||||
"$numberLong": "3"
|
||||
},
|
||||
"limit": {
|
||||
"$numberLong": "4"
|
||||
}
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "42"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"firstBatch": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "find"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"getMore": {
|
||||
"$numberLong": "42"
|
||||
},
|
||||
"collection": "test",
|
||||
"batchSize": {
|
||||
"$numberLong": "1"
|
||||
}
|
||||
},
|
||||
"command_name": "getMore",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"cursor": {
|
||||
"id": {
|
||||
"$numberLong": "0"
|
||||
},
|
||||
"ns": "command-monitoring-tests.test",
|
||||
"nextBatch": [
|
||||
{
|
||||
"_id": 4,
|
||||
"x": 44
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"command_name": "getMore"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A failed find event",
|
||||
"operation": {
|
||||
"name": "find",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"$or": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"find": "test",
|
||||
"filter": {
|
||||
"$or": true
|
||||
}
|
||||
},
|
||||
"command_name": "find",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_failed_event": {
|
||||
"command_name": "find"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,145 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful insert many",
|
||||
"operation": {
|
||||
"name": "insertMany",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful insert many command with write errors",
|
||||
"operation": {
|
||||
"name": "insertMany",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": [
|
||||
{
|
||||
"index": 0,
|
||||
"code": 42,
|
||||
"errmsg": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful unordered insert many",
|
||||
"operation": {
|
||||
"name": "insertMany",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"options": {
|
||||
"ordered": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"ordered": false
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,97 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful insert one",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful insert one command with write errors",
|
||||
"operation": {
|
||||
"name": "insertOne",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": [
|
||||
{
|
||||
"index": 0,
|
||||
"code": 42,
|
||||
"errmsg": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,69 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
],
|
||||
"collection_name": "test-unacknowledged-bulk-write",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful unordered bulk write with an unacknowledged write concern",
|
||||
"comment": "On a 2.4 server, no GLE is sent and requires a client-side manufactured reply",
|
||||
"operation": {
|
||||
"name": "bulkWrite",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {
|
||||
"w": 0
|
||||
}
|
||||
},
|
||||
"arguments": {
|
||||
"requests": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": "unorderedBulkWriteInsertW0",
|
||||
"x": 44
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"options": {
|
||||
"ordered": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "test-unacknowledged-bulk-write",
|
||||
"documents": [
|
||||
{
|
||||
"_id": "unorderedBulkWriteInsertW0",
|
||||
"x": 44
|
||||
}
|
||||
],
|
||||
"ordered": false,
|
||||
"writeConcern": {
|
||||
"w": 0
|
||||
}
|
||||
},
|
||||
"command_name": "insert",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1
|
||||
},
|
||||
"command_name": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,135 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful update many",
|
||||
"operation": {
|
||||
"name": "updateMany",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"ordered": true,
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"multi": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 2
|
||||
},
|
||||
"command_name": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful update many command with write errors",
|
||||
"operation": {
|
||||
"name": "updateMany",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$nothing": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"ordered": true,
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$nothing": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"multi": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": [
|
||||
{
|
||||
"index": 0,
|
||||
"code": 42,
|
||||
"errmsg": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -1,190 +0,0 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
],
|
||||
"collection_name": "test",
|
||||
"database_name": "command-monitoring-tests",
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful update one",
|
||||
"operation": {
|
||||
"name": "updateOne",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"ordered": true,
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"command_name": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful update one with upsert when the upserted id is not an object id",
|
||||
"operation": {
|
||||
"name": "updateOne",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 4
|
||||
},
|
||||
"update": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": true
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"ordered": true,
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 4
|
||||
},
|
||||
"u": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1,
|
||||
"upserted": [
|
||||
{
|
||||
"index": 0,
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful update one command with write errors",
|
||||
"operation": {
|
||||
"name": "updateOne",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$nothing": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"ordered": true,
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$nothing": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update",
|
||||
"database_name": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_succeeded_event": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": [
|
||||
{
|
||||
"index": 0,
|
||||
"code": 42,
|
||||
"errmsg": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
"command_name": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -162,6 +162,11 @@
|
||||
},
|
||||
{
|
||||
"description": "getnonce",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"maxServerVersion": "6.1.99"
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
{
|
||||
"name": "runCommand",
|
||||
@ -293,6 +298,11 @@
|
||||
},
|
||||
{
|
||||
"description": "copydbgetnonce",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"maxServerVersion": "3.6.99"
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
{
|
||||
"name": "runCommand",
|
||||
@ -328,6 +338,11 @@
|
||||
},
|
||||
{
|
||||
"description": "copydbsaslstart",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"maxServerVersion": "4.0.99"
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
{
|
||||
"name": "runCommand",
|
||||
@ -363,6 +378,11 @@
|
||||
},
|
||||
{
|
||||
"description": "copydb",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"maxServerVersion": "4.0.99"
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
{
|
||||
"name": "runCommand",
|
||||
108
test/command_monitoring/unacknowledgedBulkWrite.json
Normal file
108
test/command_monitoring/unacknowledgedBulkWrite.json
Normal file
@ -0,0 +1,108 @@
|
||||
{
|
||||
"description": "unacknowledgedBulkWrite",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {
|
||||
"w": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful unordered bulk write with an unacknowledged write concern",
|
||||
"operations": [
|
||||
{
|
||||
"name": "bulkWrite",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"requests": [
|
||||
{
|
||||
"insertOne": {
|
||||
"document": {
|
||||
"_id": "unorderedBulkWriteInsertW0",
|
||||
"x": 44
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"ordered": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "test",
|
||||
"documents": [
|
||||
{
|
||||
"_id": "unorderedBulkWriteInsertW0",
|
||||
"x": 44
|
||||
}
|
||||
],
|
||||
"ordered": false,
|
||||
"writeConcern": {
|
||||
"w": 0
|
||||
}
|
||||
},
|
||||
"commandName": "insert",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": {
|
||||
"$$exists": false
|
||||
}
|
||||
},
|
||||
"commandName": "insert"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
188
test/command_monitoring/updateMany.json
Normal file
188
test/command_monitoring/updateMany.json
Normal file
@ -0,0 +1,188 @@
|
||||
{
|
||||
"description": "updateMany",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful updateMany",
|
||||
"operations": [
|
||||
{
|
||||
"name": "updateMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": true
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "update",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 2
|
||||
},
|
||||
"commandName": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful updateMany with write errors",
|
||||
"operations": [
|
||||
{
|
||||
"name": "updateMany",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$unsupported": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isClientError": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$unsupported": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": true
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "update",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": {
|
||||
"$$type": "array"
|
||||
}
|
||||
},
|
||||
"commandName": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
260
test/command_monitoring/updateOne.json
Normal file
260
test/command_monitoring/updateOne.json
Normal file
@ -0,0 +1,260 @@
|
||||
{
|
||||
"description": "updateOne",
|
||||
"schemaVersion": "1.0",
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent",
|
||||
"commandSucceededEvent",
|
||||
"commandFailedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database",
|
||||
"client": "client",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection",
|
||||
"database": "database",
|
||||
"collectionName": "test"
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "test",
|
||||
"databaseName": "command-monitoring-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
},
|
||||
{
|
||||
"_id": 3,
|
||||
"x": 33
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "A successful updateOne",
|
||||
"operations": [
|
||||
{
|
||||
"name": "updateOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "update",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1
|
||||
},
|
||||
"commandName": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful updateOne with upsert where the upserted id is not an ObjectId",
|
||||
"operations": [
|
||||
{
|
||||
"name": "updateOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 4
|
||||
},
|
||||
"update": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": true
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 4
|
||||
},
|
||||
"u": {
|
||||
"$inc": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": true,
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "update",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 1,
|
||||
"upserted": [
|
||||
{
|
||||
"index": 0,
|
||||
"_id": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"commandName": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "A successful updateOne with write errors",
|
||||
"operations": [
|
||||
{
|
||||
"name": "updateOne",
|
||||
"object": "collection",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"update": {
|
||||
"$unsupported": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"expectError": {
|
||||
"isClientError": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "test",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
},
|
||||
"u": {
|
||||
"$unsupported": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"ordered": true
|
||||
},
|
||||
"commandName": "update",
|
||||
"databaseName": "command-monitoring-tests"
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandSucceededEvent": {
|
||||
"reply": {
|
||||
"ok": 1,
|
||||
"n": 0,
|
||||
"writeErrors": {
|
||||
"$$type": "array"
|
||||
}
|
||||
},
|
||||
"commandName": "update"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -28,7 +28,7 @@ _TEST_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "command_
|
||||
|
||||
globals().update(
|
||||
generate_test_classes(
|
||||
os.path.join(_TEST_PATH, "unified"),
|
||||
_TEST_PATH,
|
||||
module=__name__,
|
||||
)
|
||||
)
|
||||
@ -1,237 +0,0 @@
|
||||
# Copyright 2015-present MongoDB, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
"""Run the command monitoring legacy-format spec tests."""
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
sys.path[0:0] = [""]
|
||||
|
||||
from test import client_context, unittest
|
||||
from test.utils import EventListener, parse_read_preference, rs_or_single_client
|
||||
|
||||
import pymongo
|
||||
from bson import json_util
|
||||
from pymongo import MongoClient
|
||||
from pymongo.errors import OperationFailure
|
||||
from pymongo.write_concern import WriteConcern
|
||||
|
||||
# Location of JSON test specifications.
|
||||
_TEST_PATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "command_monitoring")
|
||||
|
||||
|
||||
def camel_to_snake(camel):
|
||||
# Regex to convert CamelCase to snake_case.
|
||||
snake = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", camel)
|
||||
return re.sub("([a-z0-9])([A-Z])", r"\1_\2", snake).lower()
|
||||
|
||||
|
||||
class TestAllScenarios(unittest.TestCase):
|
||||
listener: EventListener
|
||||
client: MongoClient
|
||||
|
||||
@classmethod
|
||||
@client_context.require_connection
|
||||
def setUpClass(cls):
|
||||
cls.listener = EventListener()
|
||||
cls.client = rs_or_single_client(event_listeners=[cls.listener])
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.client.close()
|
||||
|
||||
def tearDown(self):
|
||||
self.listener.reset()
|
||||
|
||||
|
||||
def create_test(scenario_def, test):
|
||||
def run_scenario(self):
|
||||
dbname = scenario_def["database_name"]
|
||||
collname = scenario_def["collection_name"]
|
||||
|
||||
coll = self.client[dbname][collname]
|
||||
coll.drop()
|
||||
coll.insert_many(scenario_def["data"])
|
||||
self.listener.reset()
|
||||
name = camel_to_snake(test["operation"]["name"])
|
||||
if "read_preference" in test["operation"]:
|
||||
coll = coll.with_options(
|
||||
read_preference=parse_read_preference(test["operation"]["read_preference"])
|
||||
)
|
||||
if "collectionOptions" in test["operation"]:
|
||||
colloptions = test["operation"]["collectionOptions"]
|
||||
if "writeConcern" in colloptions:
|
||||
concern = colloptions["writeConcern"]
|
||||
coll = coll.with_options(write_concern=WriteConcern(**concern))
|
||||
|
||||
test_args = test["operation"]["arguments"]
|
||||
if "options" in test_args:
|
||||
options = test_args.pop("options")
|
||||
test_args.update(options)
|
||||
args = {}
|
||||
for arg in test_args:
|
||||
args[camel_to_snake(arg)] = test_args[arg]
|
||||
|
||||
if name == "count":
|
||||
self.skipTest("PyMongo does not support count")
|
||||
elif name == "bulk_write":
|
||||
bulk_args = []
|
||||
for request in args["requests"]:
|
||||
opname = request["name"]
|
||||
klass = opname[0:1].upper() + opname[1:]
|
||||
arg = getattr(pymongo, klass)(**request["arguments"])
|
||||
bulk_args.append(arg)
|
||||
try:
|
||||
coll.bulk_write(bulk_args, args.get("ordered", True))
|
||||
except OperationFailure:
|
||||
pass
|
||||
elif name == "find":
|
||||
if "sort" in args:
|
||||
args["sort"] = list(args["sort"].items())
|
||||
if "hint" in args:
|
||||
args["hint"] = list(args["hint"].items())
|
||||
for arg in "skip", "limit":
|
||||
if arg in args:
|
||||
args[arg] = int(args[arg])
|
||||
try:
|
||||
# Iterate the cursor.
|
||||
tuple(coll.find(**args))
|
||||
except OperationFailure:
|
||||
pass
|
||||
else:
|
||||
try:
|
||||
getattr(coll, name)(**args)
|
||||
except OperationFailure:
|
||||
pass
|
||||
|
||||
started_events = self.listener.started_events
|
||||
succeeded_events = self.listener.succeeded_events
|
||||
failed_events = self.listener.failed_events
|
||||
for expectation in test["expectations"]:
|
||||
event_type = next(iter(expectation))
|
||||
if event_type == "command_started_event":
|
||||
event = started_events[0] if len(started_events) else None
|
||||
if event is not None:
|
||||
# The tests substitute 42 for any number other than 0.
|
||||
if event.command_name == "getMore" and event.command["getMore"]:
|
||||
event.command["getMore"] = 42
|
||||
elif event.command_name == "killCursors":
|
||||
event.command["cursors"] = [42]
|
||||
elif event.command_name == "update":
|
||||
# TODO: remove this once PYTHON-1744 is done.
|
||||
# Add upsert and multi fields back into
|
||||
# expectations.
|
||||
updates = expectation[event_type]["command"]["updates"]
|
||||
for update in updates:
|
||||
update.setdefault("upsert", False)
|
||||
update.setdefault("multi", False)
|
||||
elif event_type == "command_succeeded_event":
|
||||
event = succeeded_events.pop(0) if len(succeeded_events) else None
|
||||
if event is not None:
|
||||
reply = event.reply
|
||||
# The tests substitute 42 for any number other than 0,
|
||||
# and "" for any error message.
|
||||
if "writeErrors" in reply:
|
||||
for doc in reply["writeErrors"]:
|
||||
# Remove any new fields the server adds. The tests
|
||||
# only have index, code, and errmsg.
|
||||
diff = set(doc) - set(["index", "code", "errmsg"])
|
||||
for field in diff:
|
||||
doc.pop(field)
|
||||
doc["code"] = 42
|
||||
doc["errmsg"] = ""
|
||||
elif "cursor" in reply:
|
||||
if reply["cursor"]["id"]:
|
||||
reply["cursor"]["id"] = 42
|
||||
elif event.command_name == "killCursors":
|
||||
# Make the tests continue to pass when the killCursors
|
||||
# command is actually in use.
|
||||
if "cursorsKilled" in reply:
|
||||
reply.pop("cursorsKilled")
|
||||
reply["cursorsUnknown"] = [42]
|
||||
# Found succeeded event. Pop related started event.
|
||||
started_events.pop(0)
|
||||
elif event_type == "command_failed_event":
|
||||
event = failed_events.pop(0) if len(failed_events) else None
|
||||
if event is not None:
|
||||
# Found failed event. Pop related started event.
|
||||
started_events.pop(0)
|
||||
else:
|
||||
self.fail("Unknown event type")
|
||||
|
||||
if event is None:
|
||||
event_name = event_type.split("_")[1]
|
||||
self.fail(
|
||||
"Expected %s event for %s command. Actual "
|
||||
"results:\n%s"
|
||||
% (
|
||||
event_name,
|
||||
expectation[event_type]["command_name"],
|
||||
"\n".join(str(e) for e in self.listener.events),
|
||||
)
|
||||
)
|
||||
|
||||
for attr, expected in expectation[event_type].items():
|
||||
if "options" in expected:
|
||||
options = expected.pop("options")
|
||||
expected.update(options)
|
||||
actual = getattr(event, attr)
|
||||
if isinstance(expected, dict):
|
||||
for key, val in expected.items():
|
||||
self.assertEqual(val, actual[key])
|
||||
else:
|
||||
self.assertEqual(actual, expected)
|
||||
|
||||
return run_scenario
|
||||
|
||||
|
||||
def create_tests():
|
||||
for dirpath, _, filenames in os.walk(os.path.join(_TEST_PATH, "legacy")):
|
||||
dirname = os.path.split(dirpath)[-1]
|
||||
for filename in filenames:
|
||||
with open(os.path.join(dirpath, filename)) as scenario_stream:
|
||||
scenario_def = json_util.loads(scenario_stream.read())
|
||||
assert bool(scenario_def.get("tests")), "tests cannot be empty"
|
||||
# Construct test from scenario.
|
||||
for test in scenario_def["tests"]:
|
||||
new_test = create_test(scenario_def, test)
|
||||
if "ignore_if_server_version_greater_than" in test:
|
||||
version = test["ignore_if_server_version_greater_than"]
|
||||
ver = tuple(int(elt) for elt in version.split("."))
|
||||
new_test = client_context.require_version_max(*ver)(new_test)
|
||||
if "ignore_if_server_version_less_than" in test:
|
||||
version = test["ignore_if_server_version_less_than"]
|
||||
ver = tuple(int(elt) for elt in version.split("."))
|
||||
new_test = client_context.require_version_min(*ver)(new_test)
|
||||
if "ignore_if_topology_type" in test:
|
||||
types = set(test["ignore_if_topology_type"])
|
||||
if "sharded" in types:
|
||||
new_test = client_context.require_no_mongos(None)(new_test)
|
||||
|
||||
test_name = "test_%s_%s_%s" % (
|
||||
dirname,
|
||||
os.path.splitext(filename)[0],
|
||||
str(test["description"].replace(" ", "_")),
|
||||
)
|
||||
new_test.__name__ = test_name
|
||||
setattr(TestAllScenarios, new_test.__name__, new_test)
|
||||
|
||||
|
||||
create_tests()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
@ -1078,6 +1078,7 @@ class TestCommandMonitoring(IntegrationTest):
|
||||
|
||||
self.listener.reset()
|
||||
|
||||
@client_context.require_version_max(6, 1, 99)
|
||||
def test_sensitive_commands(self):
|
||||
listeners = self.client._event_listeners
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user