PYTHON-4267 Convert read/write concern spec tests to unified test format (#1763)
This commit is contained in:
parent
8143f056b5
commit
5699f8029d
@ -137,6 +137,9 @@ do
|
||||
srv|SRV|initial-dns-seedlist-discovery|srv_seedlist)
|
||||
cpjson initial-dns-seedlist-discovery/tests/ srv_seedlist
|
||||
;;
|
||||
read-write-concern|read_write_concern)
|
||||
cpjson read-write-concern/tests/operation read_write_concern/operation
|
||||
;;
|
||||
retryable-reads|retryable_reads)
|
||||
cpjson retryable-reads/tests/ retryable_reads
|
||||
;;
|
||||
|
||||
@ -1,53 +1,93 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"collection_name": "default_write_concern_coll",
|
||||
"database_name": "default_write_concern_db",
|
||||
"runOn": [
|
||||
"description": "default-write-concern-2.6",
|
||||
"schemaVersion": "1.0",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "2.6"
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client0",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database0",
|
||||
"client": "client0",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"databaseOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection0",
|
||||
"database": "database0",
|
||||
"collectionName": "coll",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "DeleteOne omits default write concern",
|
||||
"operations": [
|
||||
{
|
||||
"name": "deleteOne",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {}
|
||||
},
|
||||
"result": {
|
||||
"expectResult": {
|
||||
"deletedCount": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "default_write_concern_coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 1
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -56,32 +96,36 @@
|
||||
"operations": [
|
||||
{
|
||||
"name": "deleteMany",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {}
|
||||
},
|
||||
"result": {
|
||||
"expectResult": {
|
||||
"deletedCount": 2
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "default_write_concern_coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 0
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 0
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -90,30 +134,24 @@
|
||||
"operations": [
|
||||
{
|
||||
"name": "bulkWrite",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"ordered": true,
|
||||
"requests": [
|
||||
{
|
||||
"name": "deleteMany",
|
||||
"arguments": {
|
||||
"deleteMany": {
|
||||
"filter": {}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"arguments": {
|
||||
"insertOne": {
|
||||
"document": {
|
||||
"_id": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "updateOne",
|
||||
"arguments": {
|
||||
"updateOne": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
},
|
||||
@ -125,16 +163,14 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"arguments": {
|
||||
"insertOne": {
|
||||
"document": {
|
||||
"_id": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "replaceOne",
|
||||
"arguments": {
|
||||
"replaceOne": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
},
|
||||
@ -144,16 +180,14 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insertOne",
|
||||
"arguments": {
|
||||
"insertOne": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "updateMany",
|
||||
"arguments": {
|
||||
"updateMany": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
},
|
||||
@ -165,8 +199,7 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "deleteOne",
|
||||
"arguments": {
|
||||
"deleteOne": {
|
||||
"filter": {
|
||||
"_id": 3
|
||||
}
|
||||
@ -176,10 +209,177 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"name": "default_write_concern_coll",
|
||||
"data": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 0
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"x": 2
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 3
|
||||
}
|
||||
},
|
||||
"multi": true,
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 3
|
||||
},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 3
|
||||
@ -189,136 +389,6 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "default_write_concern_coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 0
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "default_write_concern_coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "default_write_concern_coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "default_write_concern_coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "default_write_concern_coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"x": 2
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "default_write_concern_coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "default_write_concern_coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 3
|
||||
}
|
||||
},
|
||||
"multi": true
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "default_write_concern_coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 3
|
||||
},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -326,10 +396,7 @@
|
||||
"operations": [
|
||||
{
|
||||
"name": "insertOne",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"document": {
|
||||
"_id": 3
|
||||
@ -338,10 +405,7 @@
|
||||
},
|
||||
{
|
||||
"name": "insertMany",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"documents": [
|
||||
{
|
||||
@ -354,10 +418,51 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"name": "default_write_concern_coll",
|
||||
"data": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"insert": "coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 4
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
@ -377,37 +482,6 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "default_write_concern_coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 3
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"insert": "default_write_concern_coll",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 4
|
||||
},
|
||||
{
|
||||
"_id": 5
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -415,10 +489,7 @@
|
||||
"operations": [
|
||||
{
|
||||
"name": "updateOne",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
@ -432,10 +503,7 @@
|
||||
},
|
||||
{
|
||||
"name": "updateMany",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 2
|
||||
@ -449,10 +517,7 @@
|
||||
},
|
||||
{
|
||||
"name": "replaceOne",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 2
|
||||
@ -463,10 +528,98 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"name": "default_write_concern_coll",
|
||||
"data": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 2
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 2
|
||||
}
|
||||
},
|
||||
"multi": true,
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"update": "coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 2
|
||||
},
|
||||
"u": {
|
||||
"x": 3
|
||||
},
|
||||
"upsert": {
|
||||
"$$unsetOrMatches": false
|
||||
},
|
||||
"multi": {
|
||||
"$$unsetOrMatches": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 1
|
||||
@ -477,67 +630,6 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "default_write_concern_coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 1
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "default_write_concern_coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 2
|
||||
},
|
||||
"u": {
|
||||
"$set": {
|
||||
"x": 2
|
||||
}
|
||||
},
|
||||
"multi": true
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"update": "default_write_concern_coll",
|
||||
"updates": [
|
||||
{
|
||||
"q": {
|
||||
"_id": 2
|
||||
},
|
||||
"u": {
|
||||
"x": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@ -1,31 +1,64 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"collection_name": "default_write_concern_coll",
|
||||
"database_name": "default_write_concern_db",
|
||||
"runOn": [
|
||||
"description": "default-write-concern-3.2",
|
||||
"schemaVersion": "1.0",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "3.2"
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client0",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database0",
|
||||
"client": "client0",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"databaseOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection0",
|
||||
"database": "database0",
|
||||
"collectionName": "coll",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "findAndModify operations omit default write concern",
|
||||
"operations": [
|
||||
{
|
||||
"name": "findOneAndUpdate",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 1
|
||||
@ -39,10 +72,7 @@
|
||||
},
|
||||
{
|
||||
"name": "findOneAndReplace",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 2
|
||||
@ -54,10 +84,7 @@
|
||||
},
|
||||
{
|
||||
"name": "findOneAndDelete",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"filter": {
|
||||
"_id": 2
|
||||
@ -65,60 +92,72 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"name": "default_write_concern_coll",
|
||||
"data": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"findAndModify": "coll",
|
||||
"query": {
|
||||
"_id": 1
|
||||
},
|
||||
"update": {
|
||||
"$set": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"findAndModify": "coll",
|
||||
"query": {
|
||||
"_id": 2
|
||||
},
|
||||
"update": {
|
||||
"x": 2
|
||||
},
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"findAndModify": "coll",
|
||||
"query": {
|
||||
"_id": 2
|
||||
},
|
||||
"remove": true,
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"findAndModify": "default_write_concern_coll",
|
||||
"query": {
|
||||
"_id": 1
|
||||
},
|
||||
"update": {
|
||||
"$set": {
|
||||
"x": 1
|
||||
}
|
||||
},
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"findAndModify": "default_write_concern_coll",
|
||||
"query": {
|
||||
"_id": 2
|
||||
},
|
||||
"update": {
|
||||
"x": 2
|
||||
},
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"findAndModify": "default_write_concern_coll",
|
||||
"query": {
|
||||
"_id": 2
|
||||
},
|
||||
"remove": true,
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@ -1,30 +1,68 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"collection_name": "default_write_concern_coll",
|
||||
"database_name": "default_write_concern_db",
|
||||
"runOn": [
|
||||
"description": "default-write-concern-3.4",
|
||||
"schemaVersion": "1.4",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "3.4"
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client0",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database0",
|
||||
"client": "client0",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"databaseOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection0",
|
||||
"database": "database0",
|
||||
"collectionName": "coll",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Aggregate with $out omits default write concern",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"serverless": "forbid"
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
{
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"name": "aggregate",
|
||||
"arguments": {
|
||||
"pipeline": [
|
||||
@ -42,77 +80,89 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"name": "other_collection_name",
|
||||
"data": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"aggregate": "coll",
|
||||
"pipeline": [
|
||||
{
|
||||
"$match": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"$out": "other_collection_name"
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "other_collection_name",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"expectations": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"aggregate": "default_write_concern_coll",
|
||||
"pipeline": [
|
||||
{
|
||||
"$match": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"$out": "other_collection_name"
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "RunCommand with a write command omits default write concern (runCommand should never inherit write concern)",
|
||||
"operations": [
|
||||
{
|
||||
"object": "database",
|
||||
"databaseOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "database0",
|
||||
"name": "runCommand",
|
||||
"command_name": "delete",
|
||||
"arguments": {
|
||||
"command": {
|
||||
"delete": "default_write_concern_coll",
|
||||
"delete": "coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"commandName": "delete"
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"delete": "default_write_concern_coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 1
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"delete": "coll",
|
||||
"deletes": [
|
||||
{
|
||||
"q": {},
|
||||
"limit": 1
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
@ -120,10 +170,7 @@
|
||||
"description": "CreateIndex and dropIndex omits default write concern",
|
||||
"operations": [
|
||||
{
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"name": "createIndex",
|
||||
"arguments": {
|
||||
"keys": {
|
||||
@ -132,53 +179,61 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"name": "dropIndex",
|
||||
"arguments": {
|
||||
"name": "x_1"
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"createIndexes": "default_write_concern_coll",
|
||||
"indexes": [
|
||||
{
|
||||
"name": "x_1",
|
||||
"key": {
|
||||
"x": 1
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"createIndexes": "coll",
|
||||
"indexes": [
|
||||
{
|
||||
"name": "x_1",
|
||||
"key": {
|
||||
"x": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"dropIndexes": "coll",
|
||||
"index": "x_1",
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"dropIndexes": "default_write_concern_coll",
|
||||
"index": "x_1",
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"description": "MapReduce omits default write concern",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"serverless": "forbid"
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
{
|
||||
"name": "mapReduce",
|
||||
"object": "collection",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"arguments": {
|
||||
"map": {
|
||||
"$code": "function inc() { return emit(0, this.x + 1) }"
|
||||
@ -192,23 +247,30 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"mapReduce": "default_write_concern_coll",
|
||||
"map": {
|
||||
"$code": "function inc() { return emit(0, this.x + 1) }"
|
||||
},
|
||||
"reduce": {
|
||||
"$code": "function sum(key, values) { return values.reduce((acc, x) => acc + x); }"
|
||||
},
|
||||
"out": {
|
||||
"inline": 1
|
||||
},
|
||||
"writeConcern": null
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"mapReduce": "coll",
|
||||
"map": {
|
||||
"$code": "function inc() { return emit(0, this.x + 1) }"
|
||||
},
|
||||
"reduce": {
|
||||
"$code": "function sum(key, values) { return values.reduce((acc, x) => acc + x); }"
|
||||
},
|
||||
"out": {
|
||||
"inline": 1
|
||||
},
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -1,33 +1,63 @@
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
],
|
||||
"collection_name": "default_write_concern_coll",
|
||||
"database_name": "default_write_concern_db",
|
||||
"runOn": [
|
||||
"description": "default-write-concern-4.2",
|
||||
"schemaVersion": "1.0",
|
||||
"runOnRequirements": [
|
||||
{
|
||||
"minServerVersion": "4.2"
|
||||
}
|
||||
],
|
||||
"createEntities": [
|
||||
{
|
||||
"client": {
|
||||
"id": "client0",
|
||||
"observeEvents": [
|
||||
"commandStartedEvent"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"database": {
|
||||
"id": "database0",
|
||||
"client": "client0",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"databaseOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"collection": {
|
||||
"id": "collection0",
|
||||
"database": "database0",
|
||||
"collectionName": "coll",
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"initialData": [
|
||||
{
|
||||
"collectionName": "coll",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 1,
|
||||
"x": 11
|
||||
},
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"tests": [
|
||||
{
|
||||
"description": "Aggregate with $merge omits default write concern",
|
||||
"operations": [
|
||||
{
|
||||
"object": "collection",
|
||||
"databaseOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"collectionOptions": {
|
||||
"writeConcern": {}
|
||||
},
|
||||
"object": "collection0",
|
||||
"name": "aggregate",
|
||||
"arguments": {
|
||||
"pipeline": [
|
||||
@ -47,41 +77,49 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"expectations": [
|
||||
"expectEvents": [
|
||||
{
|
||||
"command_started_event": {
|
||||
"command": {
|
||||
"aggregate": "default_write_concern_coll",
|
||||
"pipeline": [
|
||||
{
|
||||
"$match": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
"client": "client0",
|
||||
"events": [
|
||||
{
|
||||
"commandStartedEvent": {
|
||||
"command": {
|
||||
"aggregate": "coll",
|
||||
"pipeline": [
|
||||
{
|
||||
"$match": {
|
||||
"_id": {
|
||||
"$gt": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"$merge": {
|
||||
"into": "other_collection_name"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"$merge": {
|
||||
"into": "other_collection_name"
|
||||
],
|
||||
"writeConcern": {
|
||||
"$$exists": false
|
||||
}
|
||||
}
|
||||
],
|
||||
"writeConcern": null
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"outcome": {
|
||||
"collection": {
|
||||
"name": "other_collection_name",
|
||||
"data": [
|
||||
"outcome": [
|
||||
{
|
||||
"collectionName": "other_collection_name",
|
||||
"databaseName": "default-write-concern-tests",
|
||||
"documents": [
|
||||
{
|
||||
"_id": 2,
|
||||
"x": 22
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@ -23,14 +23,13 @@ import warnings
|
||||
sys.path[0:0] = [""]
|
||||
|
||||
from test import IntegrationTest, client_context, unittest
|
||||
from test.unified_format import generate_test_classes
|
||||
from test.utils import (
|
||||
EventListener,
|
||||
SpecTestCreator,
|
||||
disable_replication,
|
||||
enable_replication,
|
||||
rs_or_single_client,
|
||||
)
|
||||
from test.utils_spec_runner import SpecRunner
|
||||
|
||||
from pymongo import DESCENDING
|
||||
from pymongo.errors import (
|
||||
@ -321,25 +320,15 @@ def create_tests():
|
||||
create_tests()
|
||||
|
||||
|
||||
class TestOperation(SpecRunner):
|
||||
# Location of JSON test specifications.
|
||||
TEST_PATH = os.path.join(_TEST_PATH, "operation")
|
||||
|
||||
def get_outcome_coll_name(self, outcome, collection):
|
||||
"""Spec says outcome has an optional 'collection.name'."""
|
||||
return outcome["collection"].get("name", collection.name)
|
||||
|
||||
|
||||
def create_operation_test(scenario_def, test, name):
|
||||
@client_context.require_test_commands
|
||||
def run_scenario(self):
|
||||
self.run_scenario(scenario_def, test)
|
||||
|
||||
return run_scenario
|
||||
|
||||
|
||||
test_creator = SpecTestCreator(create_operation_test, TestOperation, TestOperation.TEST_PATH)
|
||||
test_creator.create_tests()
|
||||
# Generate unified tests.
|
||||
# PyMongo does not support MapReduce.
|
||||
globals().update(
|
||||
generate_test_classes(
|
||||
os.path.join(_TEST_PATH, "operation"),
|
||||
module=__name__,
|
||||
expected_failures=["MapReduce .*"],
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@ -27,7 +27,7 @@ from test.unified_format import generate_test_classes
|
||||
TEST_PATH = Path(__file__).parent / "retryable_reads/unified"
|
||||
|
||||
# Generate unified tests.
|
||||
# PyMongo does not supportMapReduce, ListDatabaseObjects or ListCollectionObjects.
|
||||
# PyMongo does not support MapReduce, ListDatabaseObjects or ListCollectionObjects.
|
||||
globals().update(
|
||||
generate_test_classes(
|
||||
TEST_PATH,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user