@@ -748,6 +748,30 @@ def test_publish_multi_connection(self) -> None:
748748 self .assertEqual (connection_results [1 ].get ("serverAddress" , None ), "pgsql.test.com" )
749749 self .assertEqual (connection_results [1 ].find ("connectionCredentials" ).get ("password" , None ), "secret" ) # type: ignore[union-attr]
750750
751+ def test_publish_multi_connection_flat (self ) -> None :
752+ new_workbook = TSC .WorkbookItem (
753+ name = "Sample" , show_tabs = False , project_id = "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760"
754+ )
755+ connection1 = TSC .ConnectionItem ()
756+ connection1 .server_address = "mysql.test.com"
757+ connection1 .username = "test"
758+ connection1 .password = "secret"
759+ connection1 .embed_password = True
760+ connection2 = TSC .ConnectionItem ()
761+ connection2 .server_address = "pgsql.test.com"
762+ connection2 .username = "test"
763+ connection2 .password = "secret"
764+ connection2 .embed_password = True
765+
766+ response = RequestFactory .Workbook ._generate_xml (new_workbook , connections = [connection1 , connection2 ])
767+ # Can't use ConnectionItem parser due to xml namespace problems
768+ connection_results = fromstring (response ).findall (".//connection" )
769+
770+ self .assertEqual (connection_results [0 ].get ("serverAddress" , None ), "mysql.test.com" )
771+ self .assertEqual (connection_results [0 ].find ("connectionCredentials" ).get ("name" , None ), "test" ) # type: ignore[union-attr]
772+ self .assertEqual (connection_results [1 ].get ("serverAddress" , None ), "pgsql.test.com" )
773+ self .assertEqual (connection_results [1 ].find ("connectionCredentials" ).get ("password" , None ), "secret" ) # type: ignore[union-attr]
774+
751775 def test_publish_single_connection (self ) -> None :
752776 new_workbook = TSC .WorkbookItem (
753777 name = "Sample" , show_tabs = False , project_id = "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760"
@@ -762,6 +786,33 @@ def test_publish_single_connection(self) -> None:
762786 self .assertEqual (credentials [0 ].get ("password" , None ), "secret" )
763787 self .assertEqual (credentials [0 ].get ("embed" , None ), "true" )
764788
789+ def test_publish_single_connection_username_none (self ) -> None :
790+ new_workbook = TSC .WorkbookItem (
791+ name = "Sample" , show_tabs = False , project_id = "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760"
792+ )
793+ connection_creds = TSC .ConnectionCredentials (None , "secret" , True )
794+
795+ self .assertRaises (
796+ ValueError ,
797+ RequestFactory .Workbook ._generate_xml ,
798+ new_workbook ,
799+ connection_credentials = connection_creds ,
800+ )
801+
802+ def test_publish_single_connection_username_empty (self ) -> None :
803+ new_workbook = TSC .WorkbookItem (
804+ name = "Sample" , show_tabs = False , project_id = "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760"
805+ )
806+ connection_creds = TSC .ConnectionCredentials ("" , "secret" , True )
807+
808+ response = RequestFactory .Workbook ._generate_xml (new_workbook , connection_credentials = connection_creds )
809+ # Can't use ConnectionItem parser due to xml namespace problems
810+ credentials = fromstring (response ).findall (".//connectionCredentials" )
811+ self .assertEqual (len (credentials ), 1 )
812+ self .assertEqual (credentials [0 ].get ("name" , None ), "" )
813+ self .assertEqual (credentials [0 ].get ("password" , None ), "secret" )
814+ self .assertEqual (credentials [0 ].get ("embed" , None ), "true" )
815+
765816 def test_credentials_and_multi_connect_raises_exception (self ) -> None :
766817 new_workbook = TSC .WorkbookItem (
767818 name = "Sample" , show_tabs = False , project_id = "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760"
0 commit comments