|
11 | 11 | # Show full diff in self.assertEqual.
|
12 | 12 | __import__('sys').modules['unittest.util']._MAX_LENGTH = 999999999
|
13 | 13 |
|
| 14 | + |
14 | 15 | class TestCore(TestCase):
|
15 | 16 | @classmethod
|
16 | 17 | def setUpClass(cls):
|
@@ -120,68 +121,56 @@ def test_login__logout_error(self, mock_credentials):
|
120 | 121 |
|
121 | 122 | self.assertEqual(self.error_result, result)
|
122 | 123 |
|
| 124 | + @mock.patch('app.core.core.Core.logout') |
123 | 125 | @mock.patch('app.core.core.credentials')
|
124 |
| - def test_rotate_access_key__no_access_key(self, mock_credentials): |
| 126 | + def test_rotate_access_key__no_access_key(self, mock_credentials, mock_logout): |
125 | 127 | mock_credentials.check_access_key.return_value = self.error_result
|
126 |
| - result = self.core.rotate_access_key('rotate-this-key') |
| 128 | + mock_mfa_callback = Mock() |
| 129 | + result = self.core.rotate_access_key('rotate-this-key', mock_mfa_callback) |
127 | 130 |
|
128 | 131 | expected = [call.check_access_key(access_key='rotate-this-key')]
|
129 | 132 | self.assertEqual(expected, mock_credentials.mock_calls)
|
130 | 133 | self.assertEqual(self.error_result, result)
|
| 134 | + self.assertEqual(1, mock_logout.call_count) |
131 | 135 |
|
| 136 | + @mock.patch('app.core.core.Core._renew_session') |
| 137 | + @mock.patch('app.core.core.Core.logout') |
132 | 138 | @mock.patch('app.core.core.iam')
|
133 | 139 | @mock.patch('app.core.core.credentials')
|
134 |
| - def test_rotate_access_key__access_key_is_not_logged_in_and_cannot_be_rotated(self, mock_credentials, mock_iam): |
| 140 | + def test_rotate_access_key__successful_rotate(self, mock_credentials, mock_iam, mock_logout, mock_renew_session): |
135 | 141 | mock_credentials.check_access_key.return_value = self.success_result
|
136 | 142 | mock_credentials.check_session.return_value = self.success_result
|
137 | 143 | mock_credentials.get_user_name.return_value = 'test-user'
|
138 | 144 | mock_credentials.get_access_key_id.return_value = '12345'
|
| 145 | + mock_renew_session.return_value = self.success_result |
139 | 146 |
|
140 | 147 | access_key_result = Result()
|
141 | 148 | access_key_result.add_payload({'AccessKeyId': 12345, 'SecretAccessKey': 67890})
|
142 | 149 | access_key_result.set_success()
|
143 | 150 |
|
144 | 151 | mock_iam.create_access_key.return_value = access_key_result
|
| 152 | + mock_iam.delete_iam_access_key.return_value = self.success_result |
145 | 153 |
|
146 |
| - result = self.core.rotate_access_key('rotate-this-key') |
147 |
| - |
148 |
| - expected = [call.check_access_key(access_key='rotate-this-key')] |
149 |
| - self.assertEqual(expected, mock_credentials.mock_calls) |
150 |
| - |
151 |
| - self.assertEqual(False, result.was_success) |
152 |
| - self.assertEqual(True, result.was_error) |
153 |
| - |
154 |
| - @mock.patch('app.core.core.iam') |
155 |
| - @mock.patch('app.core.core.credentials') |
156 |
| - def test_rotate_access_key__successful_rotate(self, mock_credentials, mock_iam): |
157 |
| - mock_credentials.check_access_key.return_value = self.success_result |
158 |
| - mock_credentials.check_session.return_value = self.success_result |
159 |
| - mock_credentials.get_user_name.return_value = 'test-user' |
160 |
| - mock_credentials.get_access_key_id.return_value = '12345' |
161 |
| - |
162 |
| - access_key_result = Result() |
163 |
| - access_key_result.add_payload({'AccessKeyId': 12345, 'SecretAccessKey': 67890}) |
164 |
| - access_key_result.set_success() |
165 |
| - |
166 |
| - mock_iam.create_access_key.return_value = access_key_result |
| 154 | + mock_mfa_callback = Mock() |
| 155 | + result = self.core.rotate_access_key('some-access-key', mock_mfa_callback) |
167 | 156 |
|
168 |
| - # Login ino profile, then rotate the key |
169 |
| - self.core.active_profile_group = self.config.get_group('development') |
170 |
| - result = self.core.rotate_access_key('some-access-key') |
| 157 | + expected_credential_calls = [call.check_access_key(access_key='some-access-key'), |
| 158 | + # call.check_session(), # TODO can't make sure if the session is valid because there is only one "session" |
| 159 | + call.get_user_name('some-access-key'), |
| 160 | + call.get_access_key_id(), |
| 161 | + call.set_access_key(key_name='some-access-key', key_id=12345, key_secret=67890)] |
| 162 | + self.assertEqual(expected_credential_calls, mock_credentials.mock_calls) |
171 | 163 |
|
172 |
| - expected = [call.check_access_key(access_key='some-access-key'), |
173 |
| - call.check_session(), |
174 |
| - call.get_user_name('some-access-key'), |
175 |
| - call.get_access_key_id(), |
176 |
| - call.set_access_key(key_name='some-access-key', key_id=12345, key_secret=67890)] |
177 |
| - self.assertEqual(expected, mock_credentials.mock_calls) |
| 164 | + renew_session_calls = [call(access_key='some-access-key', mfa_callback=mock_mfa_callback)] |
| 165 | + self.assertEqual(renew_session_calls, mock_renew_session.mock_calls) |
178 | 166 |
|
179 |
| - expected = [call.create_access_key('test-user'), |
180 |
| - call.delete_iam_access_key('test-user', '12345')] |
181 |
| - self.assertEqual(expected, mock_iam.mock_calls) |
| 167 | + expected_iam_calls = [call.create_access_key('test-user'), |
| 168 | + call.delete_iam_access_key('test-user', '12345')] |
| 169 | + self.assertEqual(expected_iam_calls, mock_iam.mock_calls) |
182 | 170 |
|
183 | 171 | self.assertEqual(True, result.was_success)
|
184 | 172 | self.assertEqual(False, result.was_error)
|
| 173 | + self.assertEqual(2, mock_logout.call_count) |
185 | 174 |
|
186 | 175 | def test_get_region__not_logged_in(self):
|
187 | 176 | region = self.core.get_region()
|
|
0 commit comments