[Checkins] SVN: zope.authentication/trunk/src/zope/authentication/ Improve test coverage.
Dan Korostelev
nadako at gmail.com
Wed Mar 11 18:44:45 EDT 2009
Log message for revision 97937:
Improve test coverage.
Changed:
U zope.authentication/trunk/src/zope/authentication/logout.txt
U zope.authentication/trunk/src/zope/authentication/principal.py
U zope.authentication/trunk/src/zope/authentication/tests/test_ftpauth.py
U zope.authentication/trunk/src/zope/authentication/tests/test_principal.py
D zope.authentication/trunk/src/zope/authentication/tests/test_principalterms.py
-=-
Modified: zope.authentication/trunk/src/zope/authentication/logout.txt
===================================================================
--- zope.authentication/trunk/src/zope/authentication/logout.txt 2009-03-11 22:34:40 UTC (rev 97936)
+++ zope.authentication/trunk/src/zope/authentication/logout.txt 2009-03-11 22:44:45 UTC (rev 97937)
@@ -71,3 +71,7 @@
>>> from zope.authentication.interfaces import ILogoutSupported
>>> ILogoutSupported.implementedBy(LogoutSupported)
True
+
+ >>> request = object()
+ >>> ILogoutSupported.providedBy(LogoutSupported(request))
+ True
Modified: zope.authentication/trunk/src/zope/authentication/principal.py
===================================================================
--- zope.authentication/trunk/src/zope/authentication/principal.py 2009-03-11 22:34:40 UTC (rev 97936)
+++ zope.authentication/trunk/src/zope/authentication/principal.py 2009-03-11 22:44:45 UTC (rev 97937)
@@ -26,7 +26,34 @@
def checkPrincipal(context, principal_id):
- """An utility function to check if there's a principal for given principal id"""
+ """An utility function to check if there's a principal for given principal id.
+
+ Raises ValueError when principal doesn't exists for given context and
+ principal id.
+
+ To test it, let's create and register a dummy authentication utility.
+
+ >>> class DummyUtility:
+ ...
+ ... implements(IAuthentication)
+ ...
+ ... def getPrincipal(self, id):
+ ... if id == 'bob':
+ ... return id
+ ... raise PrincipalLookupError(id)
+
+ >>> from zope.component import provideUtility
+ >>> provideUtility(DummyUtility())
+
+ Now, let's the behaviour of this function.
+
+ >>> checkPrincipal(None, 'bob')
+ >>> checkPrincipal(None, 'dan')
+ Traceback (most recent call last):
+ ...
+ ValueError: ('Undefined principal id', 'dan')
+
+ """
auth = getUtility(IAuthentication, context=context)
try:
if auth.getPrincipal(principal_id):
@@ -60,9 +87,7 @@
... return id
... raise PrincipalLookupError(id)
- Since we do not want to bring up the entire component architecture, we
- simply monkey patch the `getUtility()` method to always return our
- dummy authentication utility.
+ Let's register our dummy auth utility.
>>> from zope.component import provideUtility
>>> provideUtility(DummyUtility())
@@ -157,6 +182,7 @@
principal = auth.getPrincipal(principal_id)
if principal is None:
+ # TODO: is this a possible case?
raise LookupError(principal_id)
return PrincipalTerm(principal_id.encode('base64').strip().replace('=', '_'),
Modified: zope.authentication/trunk/src/zope/authentication/tests/test_ftpauth.py
===================================================================
--- zope.authentication/trunk/src/zope/authentication/tests/test_ftpauth.py 2009-03-11 22:34:40 UTC (rev 97936)
+++ zope.authentication/trunk/src/zope/authentication/tests/test_ftpauth.py 2009-03-11 22:44:45 UTC (rev 97937)
@@ -49,6 +49,11 @@
auth.needLogin('xxx')
self.assertEqual(request.unauth, unauth+1)
+ request = FTPCredentials(None)
+ auth = FTPAuth(request)
+ self.assertEqual(auth.getLogin(), None)
+ self.assertEqual(auth.getPassword(), None)
+
def test_suite():
return TestSuite((
makeSuite(Test),
Modified: zope.authentication/trunk/src/zope/authentication/tests/test_principal.py
===================================================================
--- zope.authentication/trunk/src/zope/authentication/tests/test_principal.py 2009-03-11 22:34:40 UTC (rev 97936)
+++ zope.authentication/trunk/src/zope/authentication/tests/test_principal.py 2009-03-11 22:44:45 UTC (rev 97937)
@@ -16,13 +16,11 @@
$Id$
"""
import unittest
-from zope.testing.doctestunit import DocTestSuite
+from zope.testing import doctest
def test_suite():
return unittest.TestSuite((
- DocTestSuite('zope.authentication.principal'),
+ doctest.DocTestSuite('zope.authentication.principal'),
+ doctest.DocFileSuite('../principalterms.txt'),
))
-
-if __name__ == '__main__':
- unittest.main(defaultTest='test_suite')
Deleted: zope.authentication/trunk/src/zope/authentication/tests/test_principalterms.py
===================================================================
--- zope.authentication/trunk/src/zope/authentication/tests/test_principalterms.py 2009-03-11 22:34:40 UTC (rev 97936)
+++ zope.authentication/trunk/src/zope/authentication/tests/test_principalterms.py 2009-03-11 22:44:45 UTC (rev 97937)
@@ -1,26 +0,0 @@
-##############################################################################
-#
-# Copyright (c) 2009 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.
-#
-##############################################################################
-"""Tests for PrincipalTerms
-
-$Id$
-"""
-__docformat__ = "reStructuredText"
-import unittest
-from zope.testing import doctest
-
-
-def test_suite():
- return unittest.TestSuite((
- doctest.DocFileSuite('../principalterms.txt'),
- ))
More information about the Checkins
mailing list