From fe9940276ce3d88c39471f23c298097480ad36b2 Mon Sep 17 00:00:00 2001 From: Thais Siqueira Date: Tue, 14 Mar 2017 11:30:27 -0300 Subject: [#924] Implements update recovery code through bitmask with @anikarni --- .../unit/resources/test_backup_account_resource.py | 45 +++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'service/test/unit/resources/test_backup_account_resource.py') diff --git a/service/test/unit/resources/test_backup_account_resource.py b/service/test/unit/resources/test_backup_account_resource.py index 21ae5aab..e169062e 100644 --- a/service/test/unit/resources/test_backup_account_resource.py +++ b/service/test/unit/resources/test_backup_account_resource.py @@ -19,6 +19,7 @@ import os from mock import MagicMock, patch from twisted.trial import unittest from twisted.web.test.requesthelper import DummyRequest +from twisted.internet import defer from pixelated.resources.backup_account_resource import BackupAccountResource from test.unit.resources import DummySite @@ -27,7 +28,7 @@ from test.unit.resources import DummySite class TestBackupAccountResource(unittest.TestCase): def setUp(self): self.services_factory = MagicMock() - self.resource = BackupAccountResource(self.services_factory) + self.resource = BackupAccountResource(self.services_factory, MagicMock()) self.web = DummySite(self.resource) def test_get(self): @@ -41,3 +42,45 @@ class TestBackupAccountResource(unittest.TestCase): d.addCallback(assert_200_when_user_logged_in) return d + + @patch('pixelated.resources.backup_account_resource.AccountRecovery') + def test_post_updates_recovery_code(self, mock_account_recovery_init): + mock_account_recovery = MagicMock() + mock_account_recovery_init.return_value = mock_account_recovery + mock_account_recovery.update_recovery_code.return_value = defer.succeed("Success") + request = DummyRequest(['/backup-account']) + request.method = 'POST' + d = self.web.get(request) + + def assert_update_recovery_code_called(_): + mock_account_recovery_init.assert_called_with(self.resource._authenticator.bonafide_sesssion) + mock_account_recovery.update_recovery_code.assert_called() + + d.addCallback(assert_update_recovery_code_called) + return d + + @patch('pixelated.resources.backup_account_resource.AccountRecovery.update_recovery_code') + def test_post_returns_successfully(self, mock_update_recovery_code): + mock_update_recovery_code.return_value = defer.succeed("Success") + request = DummyRequest(['/backup-account']) + request.method = 'POST' + d = self.web.get(request) + + def assert_successful_response(_): + self.assertEqual(204, request.responseCode) + + d.addCallback(assert_successful_response) + return d + + @patch('pixelated.resources.backup_account_resource.AccountRecovery.update_recovery_code') + def test_post_returns_internal_server_error(self, mock_update_recovery_code): + mock_update_recovery_code.return_value = defer.fail(Exception) + request = DummyRequest(['/backup-account']) + request.method = 'POST' + d = self.web.get(request) + + def assert_successful_response(_): + self.assertEqual(500, request.responseCode) + + d.addCallback(assert_successful_response) + return d -- cgit v1.2.3