[Zope-CVS] CVS: Products/PluggableAuthService/plugins/tests -
test_InlineAuthHelper.py:1.1.2.1
Zachery Bir
zbir at urbanape.com
Thu Oct 14 12:07:14 EDT 2004
Update of /cvs-repository/Products/PluggableAuthService/plugins/tests
In directory cvs.zope.org:/tmp/cvs-serv20666/plugins/tests
Added Files:
Tag: pre-1_0_3-zbir-challenge-branch
test_InlineAuthHelper.py
Log Message:
New authentication plugin that returns a login form directly to the
browser in case of unauthorized.
Tests and resources included.
=== Added File Products/PluggableAuthService/plugins/tests/test_InlineAuthHelper.py ===
##############################################################################
#
# Copyright (c) 2001 Zope Corporation and Contributors. All Rights
# Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.1 (ZPL). A copy of the ZPL should accompany this
# distribution.
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
import unittest
from Products.PluggableAuthService.tests.conformance \
import ILoginPasswordHostExtractionPlugin_conformance
from Products.PluggableAuthService.tests.conformance \
import IChallengePlugin_conformance
from Products.PluggableAuthService.tests.conformance \
import ICredentialsUpdatePlugin_conformance
from Products.PluggableAuthService.tests.conformance \
import ICredentialsResetPlugin_conformance
from Products.PluggableAuthService.tests.test_PluggableAuthService \
import FauxRequest, FauxResponse, FauxObject, FauxRoot, FauxContainer
class FauxSettableRequest(FauxRequest):
def set(self, name, value):
self._dict[name] = value
class FauxInlineResponse(FauxResponse):
def __init__(self):
self.body = "Should never see this."
self.status = '200'
self.headers = {}
def write(self, data):
self.body = data
class InlineAuthHelperTests( unittest.TestCase
, ILoginPasswordHostExtractionPlugin_conformance
, IChallengePlugin_conformance
):
def _getTargetClass( self ):
from Products.PluggableAuthService.plugins.InlineAuthHelper \
import InlineAuthHelper
return InlineAuthHelper
def _makeOne( self, id='test', *args, **kw ):
return self._getTargetClass()( id=id, *args, **kw )
def _makeTree( self ):
rc = FauxObject( 'rc' )
root = FauxRoot( 'root' ).__of__( rc )
folder = FauxContainer( 'folder' ).__of__( root )
object = FauxObject( 'object' ).__of__( folder )
return rc, root, folder, object
def test_extractCredentials_no_creds( self ):
helper = self._makeOne()
response = FauxInlineResponse()
request = FauxRequest(RESPONSE=response)
self.assertEqual( helper.extractCredentials( request ), {} )
def test_extractCredentials_with_form_creds( self ):
helper = self._makeOne()
response = FauxInlineResponse()
request = FauxSettableRequest(__ac_name='foo',
__ac_password='bar',
RESPONSE=response)
self.assertEqual(helper.extractCredentials(request),
{'login': 'foo',
'password': 'bar',
'remote_host': '',
'remote_address': ''})
def test_challenge( self ):
from zExceptions import Unauthorized
rc, root, folder, object = self._makeTree()
response = FauxInlineResponse()
request = FauxRequest(RESPONSE=response)
root.REQUEST = request
helper = self._makeOne().__of__(root)
helper.body = "Overridden"
self.assertEqual(response.body, "Should never see this.")
helper.challenge(request, response)
self.assertEqual(response.body, "Overridden")
if __name__ == "__main__":
unittest.main()
def test_suite():
return unittest.TestSuite((
unittest.makeSuite( InlineAuthHelperTests ),
))
More information about the Zope-CVS
mailing list