3
3
import pymongo
4
4
from django .test import SimpleTestCase
5
5
6
- import django_mongodb
6
+ from django_mongodb import parse_uri
7
7
8
8
URI = "mongodb+srv://myDatabaseUser:D1fficultP%[email protected] /myDatabase?retryWrites=true&w=majority&tls=false"
9
9
10
10
11
- class MongoParseURITests (SimpleTestCase ):
12
- """
13
- Test django_mongodb.parse_uri(uri) function
14
- """
15
-
11
+ class ParseURITests (SimpleTestCase ):
16
12
def setUp (self ):
17
13
self .srv_record = MagicMock ()
18
14
self .srv_record .target .to_text .return_value = "cluster0.example.mongodb.net"
@@ -21,53 +17,58 @@ def setUp(self):
21
17
self .addCleanup (self .patcher .stop )
22
18
23
19
@patch ("dns.resolver.resolve" )
24
- def test_uri (self , mock_resolver ):
25
- settings_dict = django_mongodb .parse_uri (
26
- "mongodb://cluster0.example.mongodb.net/myDatabase"
27
- )
20
+ def test_simple_uri (self , mock_resolver ):
21
+ settings_dict = parse_uri ("mongodb://cluster0.example.mongodb.net/myDatabase" )
28
22
self .assertEqual (settings_dict ["ENGINE" ], "django_mongodb" )
29
23
self .assertEqual (settings_dict ["NAME" ], "myDatabase" )
30
24
self .assertEqual (settings_dict ["HOST" ], "cluster0.example.mongodb.net" )
31
25
26
+ @patch ("dns.resolver.resolve" )
27
+ def test_no_database (self , mock_resolver ):
28
+ settings_dict = parse_uri ("mongodb://cluster0.example.mongodb.net/" )
29
+ self .assertEqual (settings_dict ["ENGINE" ], "django_mongodb" )
30
+ self .assertIsNone (settings_dict ["NAME" ])
31
+ self .assertEqual (settings_dict ["HOST" ], "cluster0.example.mongodb.net" )
32
+
32
33
@patch ("dns.resolver.resolve" )
33
34
def test_srv_uri_with_options (self , mock_resolver ):
34
- settings_dict = django_mongodb . parse_uri (URI )
35
+ settings_dict = parse_uri (URI )
35
36
self .assertEqual (settings_dict ["ENGINE" ], "django_mongodb" )
36
37
self .assertEqual (settings_dict ["NAME" ], "myDatabase" )
37
38
self .assertEqual (settings_dict ["HOST" ], "mongodb+srv://cluster0.example.mongodb.net" )
38
39
self .assertEqual (settings_dict ["USER" ], "myDatabaseUser" )
39
40
self .assertEqual (settings_dict ["PASSWORD" ], "D1fficultP@ssw0rd" )
40
- self .assertEqual (settings_dict ["PORT" ], None )
41
+ self .assertIsNone (settings_dict ["PORT" ])
41
42
self .assertEqual (
42
43
settings_dict ["OPTIONS" ], {"retryWrites" : True , "w" : "majority" , "tls" : False }
43
44
)
44
45
45
46
def test_localhost (self ):
46
- settings_dict = django_mongodb . parse_uri ("mongodb://localhost/myDatabase" )
47
+ settings_dict = parse_uri ("mongodb://localhost/myDatabase" )
47
48
self .assertEqual (settings_dict ["ENGINE" ], "django_mongodb" )
48
49
self .assertEqual (settings_dict ["NAME" ], "myDatabase" )
49
50
self .assertEqual (settings_dict ["HOST" ], "localhost" )
50
51
51
- def test_localhost_bad_credentials (self ):
52
- with self .assertRaises (pymongo .errors .InvalidURI ):
53
- django_mongodb .parse_uri ("mongodb://:@localhost/myDatabase" )
54
-
55
52
@patch ("dns.resolver.resolve" )
56
- def test_conn_max_age_kwarg (self , mock_resolver ):
57
- settings_dict = django_mongodb . parse_uri (URI , conn_max_age = 600 )
53
+ def test_conn_max_age (self , mock_resolver ):
54
+ settings_dict = parse_uri (URI , conn_max_age = 600 )
58
55
self .assertEqual (settings_dict ["CONN_MAX_AGE" ], 600 )
59
56
60
57
@patch ("dns.resolver.resolve" )
61
- def test_conn_health_checks_kwarg (self , mock_resolver ):
62
- settings_dict = django_mongodb . parse_uri (URI , conn_health_checks = True )
58
+ def test_conn_health_checks (self , mock_resolver ):
59
+ settings_dict = parse_uri (URI , conn_health_checks = True )
63
60
self .assertEqual (settings_dict ["CONN_HEALTH_CHECKS" ], True )
64
61
65
62
@patch ("dns.resolver.resolve" )
66
63
def test_test_kwarg (self , mock_resolver ):
67
- settings_dict = django_mongodb . parse_uri (URI , test = {"NAME" : "test_db" })
64
+ settings_dict = parse_uri (URI , test = {"NAME" : "test_db" })
68
65
self .assertEqual (settings_dict ["TEST" ]["NAME" ], "test_db" )
69
66
67
+ def test_invalid_credentials (self ):
68
+ with self .assertRaises (pymongo .errors .InvalidURI ):
69
+ parse_uri ("mongodb://:@localhost/myDatabase" )
70
+
70
71
@patch ("dns.resolver.resolve" )
71
- def test_uri_no_prefix (self , mock_resolver ):
72
+ def test_no_prefix (self , mock_resolver ):
72
73
with self .assertRaises (pymongo .errors .InvalidURI ):
73
- django_mongodb . parse_uri ("cluster0.example.mongodb.net/myDatabase" )
74
+ parse_uri ("cluster0.example.mongodb.net/myDatabase" )
0 commit comments