From a86e59b026ee875630cfda1f55fe5371947031c2 Mon Sep 17 00:00:00 2001 From: Anike Arni Date: Tue, 18 Apr 2017 19:03:19 -0300 Subject: [#927] Adds email template translation for portuguese --- .../unit/resources/test_backup_account_resource.py | 7 ++-- service/test/unit/resources/test_login_resource.py | 21 ------------ service/test/unit/support/test_language.py | 40 ++++++++++++++++++++++ service/test/unit/test_account_recovery.py | 35 +++++++++++++++++++ 4 files changed, 80 insertions(+), 23 deletions(-) create mode 100644 service/test/unit/support/test_language.py (limited to 'service/test') diff --git a/service/test/unit/resources/test_backup_account_resource.py b/service/test/unit/resources/test_backup_account_resource.py index 220e3909..e16fa0e1 100644 --- a/service/test/unit/resources/test_backup_account_resource.py +++ b/service/test/unit/resources/test_backup_account_resource.py @@ -44,8 +44,10 @@ class TestBackupAccountResource(unittest.TestCase): d.addCallback(assert_200_when_user_logged_in) return d + @patch('pixelated.resources.backup_account_resource.parse_accept_language') @patch('pixelated.resources.backup_account_resource.AccountRecovery') - def test_post_updates_recovery_code(self, mock_account_recovery_init): + def test_post_updates_recovery_code(self, mock_account_recovery_init, mock_language): + mock_language.return_value = 'pt-BR' mock_account_recovery = MagicMock() mock_account_recovery_init.return_value = mock_account_recovery mock_account_recovery.update_recovery_code.return_value = defer.succeed("Success") @@ -61,7 +63,8 @@ class TestBackupAccountResource(unittest.TestCase): self.resource.soledad(request), self.resource._service(request, '_leap_session').smtp_config, self.resource._get_backup_email(request), - self.leap_provider.server_name) + self.leap_provider.server_name, + language='pt-BR') mock_account_recovery.update_recovery_code.assert_called() d.addCallback(assert_update_recovery_code_called) diff --git a/service/test/unit/resources/test_login_resource.py b/service/test/unit/resources/test_login_resource.py index eaaba1d4..e33b5618 100644 --- a/service/test/unit/resources/test_login_resource.py +++ b/service/test/unit/resources/test_login_resource.py @@ -24,30 +24,9 @@ from twisted.trial import unittest from twisted.web.test.requesthelper import DummyRequest from pixelated.resources.login_resource import LoginResource, LoginStatusResource -from pixelated.resources.login_resource import parse_accept_language from test.unit.resources import DummySite -class TestParseAcceptLanguage(unittest.TestCase): - def test_parse_pt_br_simple(self): - all_headers = { - 'accept-language': 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3'} - parsed_language = parse_accept_language(all_headers) - self.assertEqual('pt-BR', parsed_language) - - def test_parse_en_us_simple(self): - all_headers = { - 'accept-language': 'en-US,en;q=0.8,en-US;q=0.5,en;q=0.3'} - parsed_language = parse_accept_language(all_headers) - self.assertEqual('en-US', parsed_language) - - def test_parse_pt_br_as_default(self): - all_headers = { - 'accept-language': 'de-DE,de;q=0.8,en-US;q=0.5,en;q=0.3'} - parsed_language = parse_accept_language(all_headers) - self.assertEqual('pt-BR', parsed_language) - - class TestLoginResource(unittest.TestCase): def setUp(self): self.services_factory = mock() diff --git a/service/test/unit/support/test_language.py b/service/test/unit/support/test_language.py new file mode 100644 index 00000000..23983b53 --- /dev/null +++ b/service/test/unit/support/test_language.py @@ -0,0 +1,40 @@ +# +# Copyright (c) 2017 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see . + + +from twisted.trial import unittest + +from pixelated.support.language import parse_accept_language + + +class TestParseAcceptLanguage(unittest.TestCase): + def test_parse_pt_br_simple(self): + all_headers = { + 'accept-language': 'pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3'} + parsed_language = parse_accept_language(all_headers) + self.assertEqual('pt-BR', parsed_language) + + def test_parse_en_us_simple(self): + all_headers = { + 'accept-language': 'en-US,en;q=0.8,en-US;q=0.5,en;q=0.3'} + parsed_language = parse_accept_language(all_headers) + self.assertEqual('en-US', parsed_language) + + def test_parse_pt_br_as_default(self): + all_headers = { + 'accept-language': 'de-DE,de;q=0.8,en-US;q=0.5,en;q=0.3'} + parsed_language = parse_accept_language(all_headers) + self.assertEqual('pt-BR', parsed_language) diff --git a/service/test/unit/test_account_recovery.py b/service/test/unit/test_account_recovery.py index b0edc466..eb7927d0 100644 --- a/service/test/unit/test_account_recovery.py +++ b/service/test/unit/test_account_recovery.py @@ -50,6 +50,41 @@ class AccountRecoveryTest(unittest.TestCase): yield self.account_recovery.update_recovery_code() self.mock_bonafide_session.update_recovery_code.assert_called_once_with(self.generated_code) + @defer.inlineCallbacks + def test_creates_recovery_code(self): + when(self.account_recovery)._send_mail(ANY).thenReturn(defer.succeed(None)) + yield self.account_recovery.update_recovery_code() + self.mock_soledad.create_recovery_code.assert_called_once() + + @patch('pixelated.account_recovery.smtp.sendmail') + @patch('pixelated.account_recovery.pkg_resources.resource_filename') + @defer.inlineCallbacks + def test_default_email_template(self, mock_resource, mock_sendmail): + mock_sendmail.return_value = defer.succeed(None) + + with patch('pixelated.account_recovery.open', mock_open(read_data=''), create=True): + yield self.account_recovery.update_recovery_code() + mock_resource.assert_called_once_with('pixelated.assets', + 'recovery.mail.en-US') + + @patch('pixelated.account_recovery.smtp.sendmail') + @patch('pixelated.account_recovery.pkg_resources.resource_filename') + @defer.inlineCallbacks + def test_portuguese_email_template(self, mock_resource, mock_sendmail): + self.account_recovery = AccountRecovery( + self.mock_bonafide_session, + self.mock_soledad, + self.mock_smtp_config, + self.backup_email, + self.domain, + language='pt-BR') + mock_sendmail.return_value = defer.succeed(None) + + with patch('pixelated.account_recovery.open', mock_open(read_data=''), create=True): + yield self.account_recovery.update_recovery_code() + mock_resource.assert_called_once_with('pixelated.assets', + 'recovery.mail.pt-BR') + @patch('pixelated.account_recovery.smtp.sendmail') @patch('pixelated.account_recovery.pkg_resources.resource_filename') @defer.inlineCallbacks -- cgit v1.2.3 From 995446a82ef694e0705e94effb494812e0b3ae9f Mon Sep 17 00:00:00 2001 From: Anike Arni Date: Wed, 19 Apr 2017 11:29:42 -0300 Subject: [#927] Adds headers to recovery code email template with @deniscostadsc --- service/test/unit/test_account_recovery.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'service/test') diff --git a/service/test/unit/test_account_recovery.py b/service/test/unit/test_account_recovery.py index eb7927d0..e595fc5a 100644 --- a/service/test/unit/test_account_recovery.py +++ b/service/test/unit/test_account_recovery.py @@ -92,12 +92,8 @@ class AccountRecoveryTest(unittest.TestCase): mock_sendmail.return_value = defer.succeed(None) sender = 'team@{}'.format(self.domain) - mock_file_content = '{domain}, {recovery_code}, {account_recovery_url}' - recovery_code_email = 'test.com, 4645a2f8997e5d0d, test.com/account-recovery' - msg = MIMEText(recovery_code_email) - msg['Subject'] = 'Recovery Code' - msg['From'] = sender - msg['To'] = self.backup_email + mock_file_content = '{backup_email}, {sender}, {date}, {domain}, {recovery_code}, {account_recovery_url}' + recovery_code_email = '\ntest@test.com, team@test.com, Sat, 21 Mar 2015 19:30:09 -0300, test.com, 34363435613266383939376535643064, test.com/account-recovery' with patch('pixelated.account_recovery.open', mock_open(read_data=mock_file_content), create=True): yield self.account_recovery._send_mail(self.generated_code, self.backup_email) @@ -106,4 +102,4 @@ class AccountRecoveryTest(unittest.TestCase): self.mock_smtp_config.remote_smtp_host, sender, [self.backup_email], - msg.as_string()) + recovery_code_email) -- cgit v1.2.3 From a3763301042c5db0231b0e9e2d4a62d41d374d49 Mon Sep 17 00:00:00 2001 From: Anike Arni Date: Wed, 19 Apr 2017 13:51:47 -0300 Subject: [#927] Adds date to recovery code email with @deniscostadsc --- service/test/unit/test_account_recovery.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'service/test') diff --git a/service/test/unit/test_account_recovery.py b/service/test/unit/test_account_recovery.py index e595fc5a..cb5ed520 100644 --- a/service/test/unit/test_account_recovery.py +++ b/service/test/unit/test_account_recovery.py @@ -85,11 +85,13 @@ class AccountRecoveryTest(unittest.TestCase): mock_resource.assert_called_once_with('pixelated.assets', 'recovery.mail.pt-BR') + @patch('pixelated.account_recovery.formatdate') @patch('pixelated.account_recovery.smtp.sendmail') @patch('pixelated.account_recovery.pkg_resources.resource_filename') @defer.inlineCallbacks - def test_send_recovery_code_by_email(self, mock_resource, mock_sendmail): + def test_send_recovery_code_by_email(self, mock_resource, mock_sendmail, mock_formatdate): mock_sendmail.return_value = defer.succeed(None) + mock_formatdate.return_value = 'Sat, 21 Mar 2015 19:30:09 -0300' sender = 'team@{}'.format(self.domain) mock_file_content = '{backup_email}, {sender}, {date}, {domain}, {recovery_code}, {account_recovery_url}' -- cgit v1.2.3 From d2c13c6f8535418b7c90d1f0d75fe88b2c68dd85 Mon Sep 17 00:00:00 2001 From: Denis Costa Date: Wed, 19 Apr 2017 16:52:02 -0300 Subject: [#927] Removes recovery url from email @anikarni --- service/test/unit/test_account_recovery.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'service/test') diff --git a/service/test/unit/test_account_recovery.py b/service/test/unit/test_account_recovery.py index cb5ed520..e9979fae 100644 --- a/service/test/unit/test_account_recovery.py +++ b/service/test/unit/test_account_recovery.py @@ -94,8 +94,8 @@ class AccountRecoveryTest(unittest.TestCase): mock_formatdate.return_value = 'Sat, 21 Mar 2015 19:30:09 -0300' sender = 'team@{}'.format(self.domain) - mock_file_content = '{backup_email}, {sender}, {date}, {domain}, {recovery_code}, {account_recovery_url}' - recovery_code_email = '\ntest@test.com, team@test.com, Sat, 21 Mar 2015 19:30:09 -0300, test.com, 34363435613266383939376535643064, test.com/account-recovery' + mock_file_content = '{backup_email}, {sender}, {date}, {domain}, {recovery_code}' + recovery_code_email = '\ntest@test.com, team@test.com, Sat, 21 Mar 2015 19:30:09 -0300, test.com, 34363435613266383939376535643064' with patch('pixelated.account_recovery.open', mock_open(read_data=mock_file_content), create=True): yield self.account_recovery._send_mail(self.generated_code, self.backup_email) -- cgit v1.2.3 From cffce77dbc126b1678f9a754b3e1a3663a323c33 Mon Sep 17 00:00:00 2001 From: Anike Arni Date: Thu, 20 Apr 2017 09:25:14 -0300 Subject: [#927] Calls the public method intead of private one on test with @deniscostadsc --- service/test/unit/test_account_recovery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'service/test') diff --git a/service/test/unit/test_account_recovery.py b/service/test/unit/test_account_recovery.py index e9979fae..4dc9621f 100644 --- a/service/test/unit/test_account_recovery.py +++ b/service/test/unit/test_account_recovery.py @@ -98,7 +98,7 @@ class AccountRecoveryTest(unittest.TestCase): recovery_code_email = '\ntest@test.com, team@test.com, Sat, 21 Mar 2015 19:30:09 -0300, test.com, 34363435613266383939376535643064' with patch('pixelated.account_recovery.open', mock_open(read_data=mock_file_content), create=True): - yield self.account_recovery._send_mail(self.generated_code, self.backup_email) + yield self.account_recovery.update_recovery_code() mock_sendmail.assert_called_with( self.mock_smtp_config.remote_smtp_host, -- cgit v1.2.3 From 014dde1cf661d2cc43dda79dcfa94ddc6a6b5ed0 Mon Sep 17 00:00:00 2001 From: Anike Arni Date: Thu, 20 Apr 2017 09:32:45 -0300 Subject: [#927] Sets default language to en-US with @deniscostadsc --- service/test/unit/resources/test_login_resource.py | 2 +- service/test/unit/support/test_language.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'service/test') diff --git a/service/test/unit/resources/test_login_resource.py b/service/test/unit/resources/test_login_resource.py index e33b5618..03d61758 100644 --- a/service/test/unit/resources/test_login_resource.py +++ b/service/test/unit/resources/test_login_resource.py @@ -231,7 +231,7 @@ class TestLoginPOST(unittest.TestCase): d = self.web.get(self.request) def assert_login_setup_service_for_user(_): - mock_user_bootstrap_setup.assert_called_once_with(self.user_auth, self.password, 'pt-BR') + mock_user_bootstrap_setup.assert_called_once_with(self.user_auth, self.password, 'en-US') d.addCallback(assert_login_setup_service_for_user) return d diff --git a/service/test/unit/support/test_language.py b/service/test/unit/support/test_language.py index 23983b53..b84f3a23 100644 --- a/service/test/unit/support/test_language.py +++ b/service/test/unit/support/test_language.py @@ -33,8 +33,8 @@ class TestParseAcceptLanguage(unittest.TestCase): parsed_language = parse_accept_language(all_headers) self.assertEqual('en-US', parsed_language) - def test_parse_pt_br_as_default(self): + def test_parse_en_us_as_default(self): all_headers = { 'accept-language': 'de-DE,de;q=0.8,en-US;q=0.5,en;q=0.3'} parsed_language = parse_accept_language(all_headers) - self.assertEqual('pt-BR', parsed_language) + self.assertEqual('en-US', parsed_language) -- cgit v1.2.3