diff options
| author | Ivan Kolodyazhny <e0ne@e0ne.info> | 2020-02-14 16:52:59 +0200 |
|---|---|---|
| committer | Ivan Kolodyazhny <e0ne@e0ne.info> | 2020-02-17 12:42:08 +0200 |
| commit | f1c8d330638c2b21164b15b35677f8371a6057b7 (patch) | |
| tree | 5bc9c38290fc727fb7d425b3240cb8bbba8aab35 /openstack_auth/tests | |
| parent | a85254409093b44cc97bf255a6bf428a54cfbc7c (diff) | |
| download | horizon-f1c8d330638c2b21164b15b35677f8371a6057b7.tar.gz | |
Convert test_switch_* test to mock
Change-Id: Ie3d7a2d419b4fd5e4c1f9878125487d01039e7fe
Diffstat (limited to 'openstack_auth/tests')
| -rw-r--r-- | openstack_auth/tests/unit/test_auth.py | 200 |
1 files changed, 107 insertions, 93 deletions
diff --git a/openstack_auth/tests/unit/test_auth.py b/openstack_auth/tests/unit/test_auth.py index 8d18de92d..eec68c137 100644 --- a/openstack_auth/tests/unit/test_auth.py +++ b/openstack_auth/tests/unit/test_auth.py @@ -252,99 +252,6 @@ class OpenStackAuthTestsV3(OpenStackAuthTestsMixin, self.mox.StubOutClassWithMocks(client_v3, 'Client') self.mox.StubOutClassWithMocks(v3_auth, 'Keystone2Keystone') - def test_switch(self, next=None): - project = self.data.project_two - projects = [self.data.project_one, self.data.project_two] - user = self.data.user - scoped = self.data.scoped_access_info - sc = self.data.service_catalog - et = getattr(settings, 'OPENSTACK_ENDPOINT_TYPE', 'publicURL') - - form_data = self.get_form_data(user) - - self._mock_unscoped_and_domain_list_projects(user, projects) - self._mock_scoped_client_for_tenant(scoped, self.data.project_one.id) - self._mock_scoped_client_for_tenant( - scoped, - project.id, - url=sc.url_for(service_type='identity', interface=et), - client=False) - - self.mox.ReplayAll() - - url = reverse('login') - - response = self.client.get(url) - self.assertEqual(response.status_code, 200) - - response = self.client.post(url, form_data) - self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) - - url = reverse('switch_tenants', args=[project.id]) - - scoped._project['id'] = self.data.project_two.id - - if next: - form_data.update({auth.REDIRECT_FIELD_NAME: next}) - - response = self.client.get(url, form_data) - - if next: - expected_url = next - self.assertEqual(response['location'], expected_url) - else: - self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) - - self.assertEqual(self.client.session['token'].project['id'], - scoped.project_id) - - def test_switch_with_next(self): - self.test_switch(next='/next_url') - - def test_switch_region(self, next=None): - projects = [self.data.project_one, self.data.project_two] - user = self.data.user - scoped = self.data.unscoped_access_info - sc = self.data.service_catalog - - form_data = self.get_form_data(user) - self._mock_unscoped_and_domain_list_projects(user, projects) - self._mock_scoped_client_for_tenant(scoped, self.data.project_one.id) - - self.mox.ReplayAll() - - url = reverse('login') - - response = self.client.get(url) - self.assertEqual(response.status_code, 200) - - response = self.client.post(url, form_data) - self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) - - old_region = sc.get_endpoints()['compute'][0]['region'] - self.assertEqual(self.client.session['services_region'], old_region) - - region = sc.get_endpoints()['compute'][1]['region'] - url = reverse('switch_services_region', args=[region]) - - form_data['region_name'] = region - - if next: - form_data.update({auth.REDIRECT_FIELD_NAME: next}) - - response = self.client.get(url, form_data) - - if next: - expected_url = next - self.assertEqual(response['location'], expected_url) - else: - self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) - - self.assertEqual(self.client.session['services_region'], region) - - def test_switch_region_with_next(self, next=None): - self.test_switch_region(next='/next_url') - def test_switch_keystone_provider_remote_fail(self): auth_url = settings.OPENSTACK_KEYSTONE_URL target_provider = 'k2kserviceprovider' @@ -1052,3 +959,110 @@ class OpenStackAuthTestsV3WithMock(test.TestCase): mock_access.assert_called_once_with(IsA(session.Session)) mock_token.assert_called_with(IsA(session.Session)) mock_project_list.assert_called_once_with(user=user.id) + + @mock.patch.object(v3_auth.Token, 'get_access') + @mock.patch.object(password.PasswordPlugin, 'list_projects') + @mock.patch.object(v3_auth.Password, 'get_access') + def test_switch(self, mock_access, mock_project_list, mock_token, + next=None): + project = self.data.project_two + projects = [self.data.project_one, self.data.project_two] + user = self.data.user + scoped = self.data.scoped_access_info + + form_data = self.get_form_data(user) + + mock_access.return_value = self.data.unscoped_access_info + mock_token.return_value = scoped + mock_project_list.return_value = projects + + url = reverse('login') + + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + response = self.client.post(url, form_data) + self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) + + url = reverse('switch_tenants', args=[project.id]) + + scoped._project['id'] = self.data.project_two.id + + if next: + form_data.update({auth.REDIRECT_FIELD_NAME: next}) + + response = self.client.get(url, form_data) + + if next: + expected_url = next + self.assertEqual(response['location'], expected_url) + else: + self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) + + self.assertEqual(self.client.session['token'].project['id'], + scoped.project_id) + + mock_access.assert_called_once_with(IsA(session.Session)) + mock_token.assert_called_with(IsA(session.Session)) + mock_project_list.assert_called_once_with( + IsA(session.Session), + IsA(v3_auth.Password), + self.data.unscoped_access_info) + + def test_switch_with_next(self): + self.test_switch(next='/next_url') + + @mock.patch.object(v3_auth.Token, 'get_access') + @mock.patch.object(password.PasswordPlugin, 'list_projects') + @mock.patch.object(v3_auth.Password, 'get_access') + def test_switch_region(self, mock_access, mock_project_list, mock_token, + next=None): + projects = [self.data.project_one, self.data.project_two] + user = self.data.user + scoped = self.data.unscoped_access_info + sc = self.data.service_catalog + + form_data = self.get_form_data(user) + + mock_access.return_value = self.data.unscoped_access_info + mock_token.return_value = scoped + mock_project_list.return_value = projects + + url = reverse('login') + + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + response = self.client.post(url, form_data) + self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) + + old_region = sc.get_endpoints()['compute'][0]['region'] + self.assertEqual(self.client.session['services_region'], old_region) + + region = sc.get_endpoints()['compute'][1]['region'] + url = reverse('switch_services_region', args=[region]) + + form_data['region_name'] = region + + if next: + form_data.update({auth.REDIRECT_FIELD_NAME: next}) + + response = self.client.get(url, form_data) + + if next: + expected_url = next + self.assertEqual(response['location'], expected_url) + else: + self.assertRedirects(response, settings.LOGIN_REDIRECT_URL) + + self.assertEqual(self.client.session['services_region'], region) + + mock_access.assert_called_once_with(IsA(session.Session)) + mock_token.assert_called_with(IsA(session.Session)) + mock_project_list.assert_called_once_with( + IsA(session.Session), + IsA(v3_auth.Password), + self.data.unscoped_access_info) + + def test_switch_region_with_next(self, next=None): + self.test_switch_region(next='/next_url') |
