''' TestEmail ========= Tested platforms: * Windows ''' import unittest from mock import Mock, patch from plyer.tests.common import PlatformTest, platform_import class TestEmail(unittest.TestCase): ''' TestCase for plyer.email. ''' @staticmethod @PlatformTest('win') def test_email_win(): ''' Test starting Windows email client for plyer.email. ''' email = platform_import( platform='win', module_name='email' ) try: test_mailto = 'mailto:recipient?subject=subject&body=text' with patch(target='os.startfile', new=Mock()) as startfile: email.instance().send( recipient='recipient', subject='subject', text='text' ) startfile.assert_called_once_with(test_mailto) except WindowsError: # if WE is raised, email client isn't found, # but the platform code works correctly print('Mail client not found!') if __name__ == '__main__': unittest.main()