@@ -366,6 +366,36 @@ def test_email_client_account(td: TestData):
366366 assert account .credentials .discriminator == result .credentials .discriminator
367367 assert account .credentials .password == result .credentials .password
368368
369+ @pytest .mark .pipeline
370+ def test_email_client_multi_account (td : TestData ):
371+ # Create multi account object
372+ multi_account = models .EmailClientMultiAccount (
373+ [models .EmailClientAccount ('imap.gmail.com' , 993 , 'SSLAuto' , 'IMAP' ,
374+ models .EmailClientAccountPasswordCredentials (
375+ 'example@gmail.com' , None , 'password' )),
376+ models .EmailClientAccount ('exchange.outlook.com' , 443 , 'SSLAuto' , 'EWS' ,
377+ models .EmailClientAccountOauthCredentials (
378+ 'example@outlook.com' , None , 'client_id' , 'client_secret' , 'refresh_token' ))],
379+ models .EmailClientAccount ('smtp.gmail.com' , 465 , 'SSLAuto' , 'SMTP' ,
380+ models .EmailClientAccountPasswordCredentials (
381+ 'example@gmail.com' , None , 'password' )))
382+ file_name = str (uuid .uuid4 ()) + '.multi.account'
383+ folder = td .folder
384+ storage = td .storage
385+ email = td .email
386+ # Save multi account
387+ email .save_email_client_multi_account (requests .SaveEmailClientMultiAccountRequest (
388+ models .StorageFileRqOfEmailClientMultiAccount (
389+ multi_account ,
390+ models .StorageFileLocation (storage , folder , file_name ))))
391+ # Get multi account object from storage
392+ multi_account_from_storage = email .get_email_client_multi_account (requests .GetEmailClientMultiAccountRequest (
393+ file_name , folder , storage ))
394+
395+ assert len (multi_account_from_storage .receive_accounts ) == 2
396+ assert (multi_account_from_storage .send_account .credentials .discriminator ==
397+ multi_account .send_account .credentials .discriminator )
398+
369399def _create_calendar (td , start_date_param = None ):
370400 name = str (uuid .uuid4 ())+ '.ics'
371401 start_date = (
0 commit comments