@@ -748,6 +748,30 @@ def test_publish_multi_connection(self) -> None:
748
748
self .assertEqual (connection_results [1 ].get ("serverAddress" , None ), "pgsql.test.com" )
749
749
self .assertEqual (connection_results [1 ].find ("connectionCredentials" ).get ("password" , None ), "secret" ) # type: ignore[union-attr]
750
750
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
+
751
775
def test_publish_single_connection (self ) -> None :
752
776
new_workbook = TSC .WorkbookItem (
753
777
name = "Sample" , show_tabs = False , project_id = "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760"
@@ -762,6 +786,33 @@ def test_publish_single_connection(self) -> None:
762
786
self .assertEqual (credentials [0 ].get ("password" , None ), "secret" )
763
787
self .assertEqual (credentials [0 ].get ("embed" , None ), "true" )
764
788
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
+
765
816
def test_credentials_and_multi_connect_raises_exception (self ) -> None :
766
817
new_workbook = TSC .WorkbookItem (
767
818
name = "Sample" , show_tabs = False , project_id = "ee8c6e70-43b6-11e6-af4f-f7b0d8e20760"
0 commit comments