Skip to content

Commit 0501907

Browse files
committed
Revert "pymongo driver does not support conn_*"
This reverts commit 4d155ac.
1 parent 6ec2d51 commit 0501907

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,10 @@ MONGODB_URI = "mongodb+srv://myDatabaseUser:D1fficultP%[email protected]
131131
DATABASES["default"] = django_mongodb.parse_uri(MONGODB_URI)
132132
```
133133

134-
#### `django_mongodb.parse_uri(uri, test=None)`
134+
#### `django_mongodb.parse_uri(uri, conn_max_age=0, conn_health_checks=False, test=None)`
135135

136+
- Use `conn_max_age` and `conn_health_checks` to configure [persistent database
137+
connections](https://docs.djangoproject.com/en/stable/ref/databases/#persistent-database-connections).
136138
- Use `test` to provide a dictionary of [settings for test databases](
137139
https://docs.djangoproject.com/en/stable/ref/settings/#test).
138140

django_mongodb/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def check_django_compatability():
2626
)
2727

2828

29-
def parse_uri(uri, test=None):
29+
def parse_uri(uri, conn_max_age=0, conn_health_checks=False, test=None):
3030
"""
3131
Convert the given uri into a dictionary suitable for Django's DATABASES
3232
setting.
@@ -51,6 +51,8 @@ def parse_uri(uri, test=None):
5151
"USER": uri.get("username"),
5252
"PASSWORD": uri.get("password"),
5353
"OPTIONS": uri.get("options"),
54+
"CONN_MAX_AGE": conn_max_age,
55+
"CONN_HEALTH_CHECKS": conn_health_checks,
5456
}
5557
if test:
5658
settings_dict["TEST"] = test

tests/utils_/test_parse_uri.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@ def test_localhosts_with_ports(self):
6565
self.assertEqual(settings_dict["HOST"], "localhost:27017,localhost:27018,localhost:27019")
6666
self.assertEqual(settings_dict["PORT"], None)
6767

68+
def test_conn_max_age(self):
69+
settings_dict = parse_uri(URI, conn_max_age=600)
70+
self.assertEqual(settings_dict["CONN_MAX_AGE"], 600)
71+
72+
def test_conn_health_checks(self):
73+
settings_dict = parse_uri(URI, conn_health_checks=True)
74+
self.assertEqual(settings_dict["CONN_HEALTH_CHECKS"], True)
75+
6876
def test_test_kwarg(self):
6977
settings_dict = parse_uri(URI, test={"NAME": "test_db"})
7078
self.assertEqual(settings_dict["TEST"]["NAME"], "test_db")

0 commit comments

Comments
 (0)