1414
1515import pytest # noqa F401 Needed to run the tests
1616
17- from google .cloud .sql .connector .connection_name import _parse_instance_connection_name
17+ # fmt: off
18+ from google .cloud .sql .connector .connection_name import _parse_connection_name
19+ from google .cloud .sql .connector .connection_name import \
20+ _parse_connection_name_with_domain_name
1821from google .cloud .sql .connector .connection_name import ConnectionName
1922
23+ # fmt: on
24+
2025
2126def test_ConnectionName () -> None :
2227 conn_name = ConnectionName ("project" , "region" , "instance" )
2328 # test class attributes are set properly
2429 assert conn_name .project == "project"
2530 assert conn_name .region == "region"
2631 assert conn_name .instance_name == "instance"
32+ assert conn_name .domain_name == ""
2733 # test ConnectionName str() method prints instance connection name
2834 assert str (conn_name ) == "project:region:instance"
2935
3036
37+ def test_ConnectionName_with_domain_name () -> None :
38+ conn_name = ConnectionName ("project" , "region" , "instance" , "db.example.com" )
39+ # test class attributes are set properly
40+ assert conn_name .project == "project"
41+ assert conn_name .region == "region"
42+ assert conn_name .instance_name == "instance"
43+ assert conn_name .domain_name == "db.example.com"
44+ # test ConnectionName str() method prints with domain name
45+ assert str (conn_name ) == "db.example.com -> project:region:instance"
46+
47+
3148@pytest .mark .parametrize (
3249 "connection_name, expected" ,
3350 [
@@ -38,19 +55,46 @@ def test_ConnectionName() -> None:
3855 ),
3956 ],
4057)
41- def test_parse_instance_connection_name (
42- connection_name : str , expected : ConnectionName
43- ) -> None :
58+ def test_parse_connection_name (connection_name : str , expected : ConnectionName ) -> None :
4459 """
45- Test that _parse_instance_connection_name works correctly on
60+ Test that _parse_connection_name works correctly on
4661 normal instance connection names and domain-scoped projects.
4762 """
48- assert expected == _parse_instance_connection_name (connection_name )
63+ assert expected == _parse_connection_name (connection_name )
4964
5065
51- def test_parse_instance_connection_name_bad_conn_name () -> None :
66+ def test_parse_connection_name_bad_conn_name () -> None :
5267 """
5368 Tests that ValueError is thrown for bad instance connection names.
5469 """
5570 with pytest .raises (ValueError ):
56- _parse_instance_connection_name ("project:instance" ) # missing region
71+ _parse_connection_name ("project:instance" ) # missing region
72+
73+
74+ @pytest .mark .parametrize (
75+ "connection_name, domain_name, expected" ,
76+ [
77+ (
78+ "project:region:instance" ,
79+ "db.example.com" ,
80+ ConnectionName ("project" , "region" , "instance" , "db.example.com" ),
81+ ),
82+ (
83+ "domain-prefix:project:region:instance" ,
84+ "db.example.com" ,
85+ ConnectionName (
86+ "domain-prefix:project" , "region" , "instance" , "db.example.com"
87+ ),
88+ ),
89+ ],
90+ )
91+ def test_parse_connection_name_with_domain_name (
92+ connection_name : str , domain_name : str , expected : ConnectionName
93+ ) -> None :
94+ """
95+ Test that _parse_connection_name_with_domain_name works correctly on
96+ normal instance connection names and domain-scoped projects.
97+ """
98+ assert expected == _parse_connection_name_with_domain_name (
99+ connection_name , domain_name
100+ )
0 commit comments