def test_auth(self): # Based on Testing.ZopeTestCase.testFunctional basic_auth = '%s:%s' % (user_name, user_password) self.folder.addDTMLDocument('secret_html', file='secret') self.folder.secret_html.manage_permission(view, ['Owner']) path = '/' + self.folder.absolute_url(1) + '/secret_html' # Test direct publishing response = self.publish(path + '/secret_html') self.assertEqual(response.getStatus(), 401) response = self.publish(path + '/secret_html', basic_auth) self.assertEqual(response.getStatus(), 200) self.assertEqual(response.getBody(), b'secret') # Test browser url = 'http://localhost' + path browser = Browser() browser.raiseHttpErrors = False browser.open(url) self.assertTrue(browser.headers['status'].startswith('401')) browser.login(user_name, user_password) browser.open(url) self.assertTrue(browser.headers['status'].startswith('200')) self.assertEqual(browser.contents, 'secret')
def test_auth(self): # Based on Testing.ZopeTestCase.testFunctional basic_auth = '%s:%s' % (user_name, user_password) self.folder.addDTMLDocument('secret_html', file='secret') self.folder.secret_html.manage_permission(view, ['Owner']) path = '/' + self.folder.absolute_url(1) + '/secret_html' # Test direct publishing response = self.publish(path + '/secret_html') self.assertEqual(response.getStatus(), 401) response = self.publish(path + '/secret_html', basic_auth) self.assertEqual(response.getStatus(), 200) self.assertEqual(response.getBody(), b'secret') # Test browser url = 'http://localhost' + path browser = Browser() browser.raiseHttpErrors = False browser.open(url) self.assertTrue(browser.headers['status'].startswith('401')) browser.addHeader('Authorization', 'Basic ' + basic_auth) browser.open(url) self.assertTrue(browser.headers['status'].startswith('200')) self.assertEqual(browser.contents, 'secret')
def test_raise_http_errors_false_redirect(self): self.folder._setObject('redirect', RedirectStub()) browser = Browser() browser.raiseHttpErrors = False browser.open('http://localhost/test_folder_1_/redirect') self.assertTrue(browser.headers['status'].startswith('404')) self.assertEqual(browser.url, 'http://localhost/redirected')
def test_raise_http_errors_false_redirect(self): self.folder._setObject('redirect', RedirectStub()) browser = Browser() browser.raiseHttpErrors = False browser.open('http://localhost/test_folder_1_/redirect') self.assertTrue(browser.headers['status'].startswith('404')) self.assertEqual(browser.url, 'http://localhost/redirected')
def test_raise_http_errors_false(self): self.folder._setObject('stub', ExceptionStub()) browser = Browser() browser.raiseHttpErrors = False browser.open('http://localhost/test_folder_1_/stub') self.assertTrue(browser.headers['status'].startswith('500')) browser.open('http://localhost/nothing-is-here') self.assertTrue(browser.headers['status'].startswith('404'))
def test_raise_http_errors_false(self): self.folder._setObject('stub', ExceptionStub()) browser = Browser() browser.raiseHttpErrors = False # Internal server errors are still raised: with self.assertRaises(ValueError): browser.open('http://localhost/test_folder_1_/stub') self.assertIsNone(browser.contents) # But errors handled by Zope do not create an exception: browser.open('http://localhost/nothing-is-here') self.assertTrue(browser.headers['status'].startswith('404'))
def test_raise_http_errors_false(self): self.folder._setObject('stub', ExceptionStub()) browser = Browser() browser.raiseHttpErrors = False # Internal server errors are still raised: with self.assertRaises(ValueError): browser.open('http://localhost/test_folder_1_/stub') self.assertIsNone(browser.contents) # But errors handled by Zope do not create an exception: browser.open('http://localhost/nothing-is-here') self.assertTrue(browser.headers['status'].startswith('404'))
def test_neither_raise_nor_handle_errors(self): self.folder._setObject('stub', ExceptionStub()) browser = Browser() browser.handleErrors = False browser.raiseHttpErrors = False # Custom exceptions get through with self.assertRaises(ValueError): browser.open('http://localhost/test_folder_1_/stub') self.assertTrue(browser.contents is None) # HTTPException subclasses are handled browser.open('http://localhost/nothing-is-here') self.assertTrue(browser.headers['status'].startswith('404'))