Skip to content

Commit 5c823fc

Browse files
committed
Refactor
1 parent c9267c3 commit 5c823fc

File tree

1 file changed

+23
-51
lines changed

1 file changed

+23
-51
lines changed

test/test_uri_parser.py

Lines changed: 23 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,26 @@
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+
4060
class 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

671643
if __name__ == "__main__":

0 commit comments

Comments
 (0)