From d36dcfb41a96ed2960f88aac1ba4def0fc8dd2ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Mon, 29 Aug 2011 15:05:48 +0200 Subject: [PATCH] Move test to proper class. --- .../ERP5Security/tests/testERP5Security.py | 87 +++++++++---------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/product/ERP5Security/tests/testERP5Security.py b/product/ERP5Security/tests/testERP5Security.py index 008b1baf5a..e3cc4bbf92 100644 --- a/product/ERP5Security/tests/testERP5Security.py +++ b/product/ERP5Security/tests/testERP5Security.py @@ -445,6 +445,49 @@ class TestUserManagement(ERP5TypeTestCase): self.assertEqual(response.getStatus(), 200) self.assertTrue(reference in response.getBody()) + def testERP5ExternalAuthenticationPlugin(self): + """ + Make sure that we can grant security using a ERP5 External Authentication Plugin. + """ + user_id_key = 'openAMid' + # add key authentication PAS plugin + portal = self.portal + uf = portal.acl_users + uf.manage_addProduct['ERP5Security'].addERP5ExternalAuthenticationPlugin( + id='erp5_external_authentication_plugin', \ + title='ERP5 External Authentication Plugin',\ + user_id_key=user_id_key,) + + erp5_external_authentication_plugin = getattr(uf, 'erp5_external_authentication_plugin') + erp5_external_authentication_plugin.manage_activateInterfaces( + interfaces=['IExtractionPlugin', + 'IAuthenticationPlugin']) + self.stepTic() + + reference = 'external_auth_person' + loginable_person = self.getPersonModule().newContent(portal_type='Person', + reference=reference, + password='guest') + assignment = loginable_person.newContent(portal_type='Assignment', + function='another_subcat') + assignment.open() + self.stepTic() + + base_url = portal.absolute_url(relative=1) + + # without key we are Anonymous User so we should be redirected with proper HTML + # status code to login_form + response = self.publish(base_url) + self.assertEqual(response.getStatus(), 302) + # TODO we should not have redirect but output 403 or 404, because + # login process should be provided by an external application. + # self.assertTrue('location' in response.headers.keys()) + # self.assertTrue(response.headers['location'].endswith('login_form')) + + # view front page we should be logged in if we use authentication key + response = self.publish(base_url, env={user_id_key.replace('-', '_').upper():reference}) + self.assertEqual(response.getStatus(), 200) + self.assertTrue(reference in response.getBody()) class TestLocalRoleManagement(ERP5TypeTestCase): @@ -818,50 +861,6 @@ class TestLocalRoleManagement(ERP5TypeTestCase): base_url, web_page.getReference(), 'ERP5TypeTestCase', '')) self.assertEqual(response.getStatus(), 200) - def testERP5ExternalAuthenticationPlugin(self): - """ - Make sure that we can grant security using a ERP5 External Authentication Plugin. - """ - user_id_key = 'openAMid' - # add key authentication PAS plugin - portal = self.portal - uf = portal.acl_users - uf.manage_addProduct['ERP5Security'].addERP5ExternalAuthenticationPlugin( - id='erp5_external_authentication_plugin', \ - title='ERP5 External Authentication Plugin',\ - user_id_key=user_id_key,) - - erp5_external_authentication_plugin = getattr(uf, 'erp5_external_authentication_plugin') - erp5_external_authentication_plugin.manage_activateInterfaces( - interfaces=['IExtractionPlugin', - 'IAuthenticationPlugin']) - self.stepTic() - - reference = 'external_auth_person' - loginable_person = self.getPersonModule().newContent(portal_type='Person', - reference=reference, - password='guest') - assignment = loginable_person.newContent(portal_type='Assignment', - function='another_subcat') - assignment.open() - self.stepTic() - - base_url = portal.absolute_url(relative=1) - - # without key we are Anonymous User so we should be redirected with proper HTML - # status code to login_form - response = self.publish(base_url) - self.assertEqual(response.getStatus(), 302) - # TODO we should not have redirect but output 403 or 404, because - # login process should be provided by an external application. - # self.assertTrue('location' in response.headers.keys()) - # self.assertTrue(response.headers['location'].endswith('login_form')) - - # view front page we should be logged in if we use authentication key - response = self.publish(base_url, env={user_id_key.replace('-', '_').upper():reference}) - self.assertEqual(response.getStatus(), 200) - self.assertTrue(reference in response.getBody()) - def _createZodbUser(self, login, role_list=None): if role_list is None: role_list = ['Member', 'Assignee', 'Assignor', 'Author', 'Auditor', -- 2.30.9