Skip to content

Commit 80881fa

Browse files
committed
Add assertEncrypted to verify field data is binary
1 parent 65b96b2 commit 80881fa

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

tests/encryption_/test_base.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
1+
import pymongo
2+
from bson.binary import Binary
3+
from django.conf import settings
4+
from django.db import connections
15
from django.test import TestCase, skipUnlessDBFeature
26

37

48
@skipUnlessDBFeature("supports_queryable_encryption")
59
class EncryptionTestCase(TestCase):
610
databases = {"default", "encrypted"}
711
maxDiff = None
12+
13+
def assertEncrypted(self, model, field):
14+
# Access encrypted database from an unencrypted connection
15+
conn_params = connections["default"].get_connection_params()
16+
db_name = settings.DATABASES["encrypted"]["NAME"]
17+
with pymongo.MongoClient(**conn_params) as new_connection:
18+
db = new_connection[db_name]
19+
collection = db[model._meta.db_table]
20+
data = collection.find_one({}, {field: 1, "_id": 0})
21+
self.assertIsInstance(data[field], Binary)

tests/encryption_/test_fields.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def test_array(self):
6060
self.assertEqual(len(self.movie.cast), 2)
6161
self.assertEqual(self.movie.cast[0].name, "Actor One")
6262
self.assertEqual(self.movie.cast[1].name, "Actor Two")
63+
self.assertEncrypted(self.movie, "cast")
6364

6465

6566
class FieldTests(EncryptionTestCase):

0 commit comments

Comments
 (0)