3737)
3838
3939
40+ def run_initial_dns_seedlist_discovery_prose_tests (self , test_cases ):
41+ for case in test_cases :
42+ with patch ("dns.resolver.resolve" ) as mock_resolver :
43+
44+ def mock_resolve (query , record_type , * args , ** kwargs ):
45+ mock_srv = MagicMock ()
46+ mock_srv .target .to_text .return_value = case ["mock_target" ]
47+ return [mock_srv ]
48+
49+ mock_resolver .side_effect = mock_resolve
50+ domain = case ["query" ].split ("._tcp." )[1 ]
51+ connection_string = f"mongodb+srv://{ domain } "
52+ try :
53+ parse_uri (connection_string )
54+ except ConfigurationError as e :
55+ self .assertIn (case ["expected_error" ], str (e ))
56+ else :
57+ self .fail (f"ConfigurationError was not raised for query: { case ['query' ]} " )
58+
59+
4060class TestURI (unittest .TestCase ):
4161 def test_validate_userinfo (self ):
4262 self .assertRaises (InvalidURI , parse_userinfo , "foo@" )
@@ -580,23 +600,7 @@ def test_2_throw_when_return_address_does_not_end_with_srv_domain(self):
580600 "expected_error" : "Invalid SRV host" ,
581601 },
582602 ]
583- for case in test_cases :
584- with patch ("dns.resolver.resolve" ) as mock_resolver :
585-
586- def mock_resolve (query , record_type , * args , ** kwargs ):
587- mock_srv = MagicMock ()
588- mock_srv .target .to_text .return_value = case ["mock_target" ]
589- return [mock_srv ]
590-
591- mock_resolver .side_effect = mock_resolve
592- domain = case ["query" ].split ("._tcp." )[1 ]
593- connection_string = f"mongodb+srv://{ domain } "
594- try :
595- parse_uri (connection_string )
596- except ConfigurationError as e :
597- self .assertIn (case ["expected_error" ], str (e ))
598- else :
599- self .fail (f"ConfigurationError was not raised for query: { case ['query' ]} " )
603+ run_initial_dns_seedlist_discovery_prose_tests (self , test_cases )
600604
601605 def test_3_throw_when_return_address_is_identical_to_srv_hostname (self ):
602606 test_cases = [
@@ -611,23 +615,7 @@ def test_3_throw_when_return_address_is_identical_to_srv_hostname(self):
611615 "expected_error" : "Invalid SRV host" ,
612616 },
613617 ]
614- for case in test_cases :
615- with patch ("dns.resolver.resolve" ) as mock_resolver :
616-
617- def mock_resolve (query , record_type , * args , ** kwargs ):
618- mock_srv = MagicMock ()
619- mock_srv .target .to_text .return_value = case ["mock_target" ]
620- return [mock_srv ]
621-
622- mock_resolver .side_effect = mock_resolve
623- domain = case ["query" ].split ("._tcp." )[1 ]
624- connection_string = f"mongodb+srv://{ domain } "
625- try :
626- parse_uri (connection_string )
627- except ConfigurationError as e :
628- self .assertIn (case ["expected_error" ], str (e ))
629- else :
630- self .fail (f"ConfigurationError was not raised for query: { case ['query' ]} " )
618+ run_initial_dns_seedlist_discovery_prose_tests (self , test_cases )
631619
632620 def test_4_throw_when_return_address_does_not_contain_dot_separating_shared_part_of_domain (
633621 self
@@ -649,23 +637,7 @@ def test_4_throw_when_return_address_does_not_contain_dot_separating_shared_part
649637 "expected_error" : "Invalid SRV host" ,
650638 },
651639 ]
652- for case in test_cases :
653- with patch ("dns.resolver.resolve" ) as mock_resolver :
654-
655- def mock_resolve (query , record_type , * args , ** kwargs ):
656- mock_srv = MagicMock ()
657- mock_srv .target .to_text .return_value = case ["mock_target" ]
658- return [mock_srv ]
659-
660- mock_resolver .side_effect = mock_resolve
661- domain = case ["query" ].split ("._tcp." )[1 ]
662- connection_string = f"mongodb+srv://{ domain } "
663- try :
664- parse_uri (connection_string )
665- except ConfigurationError as e :
666- self .assertIn (case ["expected_error" ], str (e ))
667- else :
668- self .fail (f"ConfigurationError was not raised for query: { case ['query' ]} " )
640+ run_initial_dns_seedlist_discovery_prose_tests (self , test_cases )
669641
670642
671643if __name__ == "__main__" :
0 commit comments