(self)
| 2271 | @client_context.require_no_standalone |
| 2272 | @client_context.require_version_min(7, 0, -1) |
| 2273 | def setUp(self): |
| 2274 | super().setUp() |
| 2275 | encrypted_client = self.rs_or_single_client( |
| 2276 | auto_encryption_opts=AutoEncryptionOpts( |
| 2277 | key_vault_namespace="db.keyvault", |
| 2278 | kms_providers={"local": {"key": LOCAL_MASTER_KEY}}, |
| 2279 | ) |
| 2280 | ) |
| 2281 | encrypted_client.drop_database("db") |
| 2282 | |
| 2283 | key_doc = json_data("etc", "data", "lookup", "key-doc.json") |
| 2284 | create_key_vault(encrypted_client.db.keyvault, key_doc) |
| 2285 | self.addCleanup(client_context.client.drop_database, "db") |
| 2286 | |
| 2287 | encrypted_client.db.create_collection( |
| 2288 | "csfle", |
| 2289 | validator={"$jsonSchema": json_data("etc", "data", "lookup", "schema-csfle.json")}, |
| 2290 | ) |
| 2291 | encrypted_client.db.create_collection( |
| 2292 | "csfle2", |
| 2293 | validator={"$jsonSchema": json_data("etc", "data", "lookup", "schema-csfle2.json")}, |
| 2294 | ) |
| 2295 | encrypted_client.db.create_collection( |
| 2296 | "qe", encryptedFields=json_data("etc", "data", "lookup", "schema-qe.json") |
| 2297 | ) |
| 2298 | encrypted_client.db.create_collection( |
| 2299 | "qe2", encryptedFields=json_data("etc", "data", "lookup", "schema-qe2.json") |
| 2300 | ) |
| 2301 | encrypted_client.db.create_collection("no_schema") |
| 2302 | encrypted_client.db.create_collection("no_schema2") |
| 2303 | |
| 2304 | unencrypted_client = self.rs_or_single_client() |
| 2305 | |
| 2306 | encrypted_client.db.csfle.insert_one({"csfle": "csfle"}) |
| 2307 | doc = unencrypted_client.db.csfle.find_one() |
| 2308 | self.assertIsInstance(doc["csfle"], Binary) |
| 2309 | encrypted_client.db.csfle2.insert_one({"csfle2": "csfle2"}) |
| 2310 | doc = unencrypted_client.db.csfle2.find_one() |
| 2311 | self.assertIsInstance(doc["csfle2"], Binary) |
| 2312 | encrypted_client.db.qe.insert_one({"qe": "qe"}) |
| 2313 | doc = unencrypted_client.db.qe.find_one() |
| 2314 | self.assertIsInstance(doc["qe"], Binary) |
| 2315 | encrypted_client.db.qe2.insert_one({"qe2": "qe2"}) |
| 2316 | doc = unencrypted_client.db.qe2.find_one() |
| 2317 | self.assertIsInstance(doc["qe2"], Binary) |
| 2318 | encrypted_client.db.no_schema.insert_one({"no_schema": "no_schema"}) |
| 2319 | encrypted_client.db.no_schema2.insert_one({"no_schema2": "no_schema2"}) |
| 2320 | |
| 2321 | encrypted_client.close() |
| 2322 | unencrypted_client.close() |
| 2323 | |
| 2324 | @client_context.require_version_min(8, 1, -1) |
| 2325 | def test_1_csfle_joins_no_schema(self): |
nothing calls this directly
no test coverage detected