Skip to content

Commit 58ab077

Browse files
committed
testing
1 parent f12d42b commit 58ab077

File tree

2 files changed

+73
-13
lines changed

2 files changed

+73
-13
lines changed

tests/performance/perftest/settings.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@
99
For the full list of settings and their values, see
1010
https://docs.djangoproject.com/en/5.2/ref/settings/
1111
"""
12-
12+
import os
1313
from pathlib import Path
1414

15+
import django_mongodb_backend
16+
1517
# Build paths inside the project like this: BASE_DIR / 'subdir'.
1618
BASE_DIR = Path(__file__).resolve().parent.parent
1719

@@ -54,17 +56,24 @@
5456

5557
# Database
5658
# https://docs.djangoproject.com/en/5.2/ref/settings/#databases
57-
59+
USER = os.environ.get("ATLAS_DEV_USER")
60+
PASSWORD = os.environ.get("ATLAS_DEV_PASSWORD")
61+
# DATABASES = {
62+
# "default": {
63+
# "ENGINE": "django_mongodb_backend",
64+
# "HOST": f"mongodb+srv://{USER}:{PASSWORD}@intpython736.oztdp.mongodb-dev.net/?retryWrites=true&w=majority&appName=INTPYTHON736",
65+
# "NAME": "benchmarking",
66+
# "PORT": 27017,
67+
# },
68+
# }
69+
70+
settings = django_mongodb_backend.parse_uri(
71+
f"mongodb+srv://{USER}:{PASSWORD}@intpython736.oztdp.mongodb-dev.net/benchmarking?retryWrites=true&w=majority&appName=INTPYTHON736"
72+
)
5873
DATABASES = {
59-
"default": {
60-
"ENGINE": "django_mongodb_backend",
61-
"HOST": "mongodb://localhost:27017",
62-
"NAME": "benchmarking",
63-
"PORT": 27017,
64-
},
74+
"default": settings,
6575
}
6676

67-
6877
# Password validation
6978
# https://docs.djangoproject.com/en/5.2/ref/settings/#auth-password-validators
7079

tests/performance/perftest/tests.py

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323

2424
import json
2525
import os
26+
import random
2627
import time
28+
import unittest
2729
import warnings
2830
from pathlib import Path
2931

@@ -50,10 +52,13 @@
5052
MAX_ITERATION_TIME = 10
5153
NUM_DOCS = 1000
5254
else:
53-
NUM_ITERATIONS = 10
54-
MIN_ITERATION_TIME = 30
55-
MAX_ITERATION_TIME = 120
56-
NUM_DOCS = 10000
55+
NUM_DOCS = 1_000_000
56+
NUM_ITERATIONS = 1
57+
MIN_ITERATION_TIME = 1
58+
# NUM_ITERATIONS = 10
59+
# MIN_ITERATION_TIME = 30
60+
MAX_ITERATION_TIME = 1
61+
# NUM_DOCS = 10000
5762

5863
TEST_PATH = os.environ.get("TEST_PATH", Path(os.path.realpath(__file__)).parent.parent / "odm-data")
5964

@@ -397,3 +402,49 @@ def do_task(self):
397402
def tearDown(self):
398403
super().tearDown()
399404
SmallFlatModel.objects.all().delete()
405+
406+
class TestSmallFlatDocFilterPkByIn(SmallFlatDocTest, TestCase):
407+
def setUp(self):
408+
super().setUp()
409+
self.ids = []
410+
models = []
411+
fields = [str(ObjectId()) for _ in range(NUM_DOCS // 10)]
412+
for doc in self.documents:
413+
models.append(SmallFlatModel(**doc))
414+
415+
for model in models:
416+
model.field1 = fields[random.randint(0, len(fields) - 1)]
417+
418+
SmallFlatModel.objects.bulk_create(models)
419+
self.ids = random.sample(fields, len(fields) // 10)
420+
# print(SmallFlatModel.objects.filter(id__in=[self.ids[0]]).explain())
421+
422+
def do_task(self):
423+
list(SmallFlatModel.objects.filter(field1__in=self.ids))
424+
425+
def tearDown(self):
426+
super().tearDown()
427+
SmallFlatModel.objects.all().delete()
428+
429+
class TestLargeFlatDocFilterPkByIn(LargeFlatDocTest, unittest.TestCase):
430+
def setUp(self):
431+
super().setUp()
432+
# LargeFlatModel.objects.all().delete()
433+
# self.ids = []
434+
# models = []
435+
# # self.fields = [str(ObjectId()) for _ in range(NUM_DOCS // 10)]
436+
# for doc in self.documents:
437+
# models.append(LargeFlatModel(**doc))
438+
# # for model in models:
439+
# # model.field1 = self.fields[random.randint(0, len(self.fields) - 1)]
440+
#
441+
# LargeFlatModel.objects.bulk_create(models)
442+
self.id = LargeFlatModel.objects.first().id
443+
print(LargeFlatModel.objects.filter(id__in=[self.id]).explain())
444+
445+
def do_task(self):
446+
list(LargeFlatModel.objects.filter(id__in=[self.id]))
447+
448+
def tearDown(self):
449+
super().tearDown()
450+
# LargeFlatModel.objects.all().delete()

0 commit comments

Comments
 (0)