[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security/tests - testPrincipalRegistry.py:1.1.2.5
Guido van Rossum
guido@python.org
Thu, 13 Dec 2001 15:47:09 -0500
Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/tests
In directory cvs.zope.org:/tmp/cvs-serv28624/tests
Modified Files:
Tag: Zope-3x-branch
testPrincipalRegistry.py
Log Message:
Added implementation to unauthorized() method:
if no authenticated user, send login challenge.
=== Zope3/lib/python/Zope/App/Security/tests/testPrincipalRegistry.py 1.1.2.4 => 1.1.2.5 ===
from Zope.Exceptions import NotFoundError
from Zope.ComponentArchitecture import _clear as clearCA
+from Zope.Publisher.HTTP.IHTTPCredentials import IHTTPCredentials
+
+class Request:
+
+ __implements__ = IHTTPCredentials
+
+ def __init__(self, lpw):
+ self.__lpw = lpw
+
+ def _authUserPW(self):
+ return self.__lpw
+
+ challenge = None
+ def unauthorized(self, challenge):
+ self.challenge = challenge
+
class Test(unittest.TestCase):
def setUp(self):
clearCA()
+
+ from Zope.ComponentArchitecture import provideAdapter
+ from Zope.App.Security.BasicAuthAdapter import BasicAuthAdapter
+ from Zope.App.Security.ILoginPassword import ILoginPassword
+ provideAdapter(IHTTPCredentials, ILoginPassword, BasicAuthAdapter)
+
self.reg = PrincipalRegistry()
self.reg.definePrincipal('1', 'Tim Peters', 'Sir Tim Peters',
@@ -79,17 +101,6 @@
self.failIf(tim.validate('12'))
def testAuthenticate(self):
- from Zope.Publisher.HTTP.IHTTPCredentials import IHTTPCredentials
- from Zope.ComponentArchitecture import provideAdapter
- class Request:
- __implements__ = IHTTPCredentials
- def __init__(self, lpw):
- self.__lpw = lpw
- def _authUserPW(self):
- return self.__lpw
- from Zope.App.Security.BasicAuthAdapter import BasicAuthAdapter
- from Zope.App.Security.ILoginPassword import ILoginPassword
- provideAdapter(IHTTPCredentials, ILoginPassword, BasicAuthAdapter)
req = Request(('tim', '123'))
pid = self.reg.authenticate(req)
self.assertEquals(pid, '1')
@@ -99,6 +110,17 @@
req = Request(('kim', '123'))
pid = self.reg.authenticate(req)
self.assertEquals(pid, None)
+
+ def testUnauthorized(self):
+ request = Request(None)
+ self.reg.unauthorized(self.reg.defaultPrincipal(), request)
+ self.assertEquals(request.challenge, "basic realm=zope")
+ request = Request(None)
+ self.reg.unauthorized(None, request)
+ self.assertEquals(request.challenge, "basic realm=zope")
+ request = Request(None)
+ self.reg.unauthorized("1", request)
+ self.assertEquals(request.challenge, None)
def testDefaultPrincipal(self):
self.assertEquals(self.reg.defaultPrincipal(), None)