[Zope-Checkins] SVN: Zope/branches/2.12/src/AccessControl/tests/testUser.py Start on getting real coverage for AccessControl.User.
Tres Seaver
tseaver at palladion.com
Sun May 16 11:49:28 EDT 2010
Log message for revision 112353:
Start on getting real coverage for AccessControl.User.
Changed:
U Zope/branches/2.12/src/AccessControl/tests/testUser.py
-=-
Modified: Zope/branches/2.12/src/AccessControl/tests/testUser.py
===================================================================
--- Zope/branches/2.12/src/AccessControl/tests/testUser.py 2010-05-16 15:26:08 UTC (rev 112352)
+++ Zope/branches/2.12/src/AccessControl/tests/testUser.py 2010-05-16 15:49:28 UTC (rev 112353)
@@ -15,6 +15,110 @@
import unittest
+class BasicUserTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from AccessControl.User import BasicUser
+ return BasicUser
+
+ def _makeOne(self, name, password, roles, domains):
+ return self._getTargetClass()(name, password, roles, domains)
+
+ def _makeDerived(self, **kw):
+ class Derived(self._getTargetClass()):
+ def __init__(self, **kw):
+ self.name = 'name'
+ self.password = 'password'
+ self.roles = ['Manager']
+ self.domains = []
+ self.__dict__.update(kw)
+ return Derived(**kw)
+
+ def test_ctor_is_abstract(self):
+ # Subclasses must override __init__, and mustn't call the base version.
+ self.assertRaises(NotImplementedError,
+ self._makeOne, 'name', 'password', ['Manager'], [])
+
+ def test_abstract_methods(self):
+ # Subclasses must override these methods.
+ derived = self._makeDerived()
+ self.assertRaises(NotImplementedError, derived.getUserName)
+ self.assertRaises(NotImplementedError, derived.getId)
+ self.assertRaises(NotImplementedError, derived._getPassword)
+ self.assertRaises(NotImplementedError, derived.getRoles)
+ self.assertRaises(NotImplementedError, derived.getDomains)
+
+ # TODO: def test_getRolesInContext (w/wo local, callable, aq)
+ # TODO: def test_authenticate (w/wo domains)
+ # TODO: def test_allowed (...)
+ # TODO: def test_has_role (w/wo str, context)
+ # TODO: def test_has_permission (w/wo str)
+
+ def test___len__(self):
+ derived = self._makeDerived()
+ self.assertEqual(len(derived), 1)
+
+ def test___str__(self):
+ derived = self._makeDerived(getUserName=lambda: 'phred')
+ self.assertEqual(str(derived), 'phred')
+
+ def test___repr__(self):
+ derived = self._makeDerived(getUserName=lambda: 'phred')
+ self.assertEqual(repr(derived), "<Derived 'phred'>")
+
+
+class UserTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from AccessControl.User import User
+ return User
+
+ def _makeOne(self, name, password, roles, domains):
+ return self._getTargetClass()(name, password, roles, domains)
+
+ def testGetUserName(self):
+ f = self._makeOne('chris', '123', ['Manager'], [])
+ self.assertEqual(f.getUserName(), 'chris')
+
+ def testGetUserId(self):
+ f = self._makeOne('chris', '123', ['Manager'], [])
+ self.assertEqual(f.getId(), 'chris')
+
+ def testBaseUserGetIdEqualGetName(self):
+ # this is true for the default user type, but will not
+ # always be true for extended user types going forward (post-2.6)
+ f = self._makeOne('chris', '123', ['Manager'], [])
+ self.assertEqual(f.getId(), f.getUserName())
+
+ def testGetPassword(self):
+ f = self._makeOne('chris', '123', ['Manager'], [])
+ self.assertEqual(f._getPassword(), '123')
+
+ def testGetRoles(self):
+ f = self._makeOne('chris', '123', ['Manager'], [])
+ self.assertEqual(f.getRoles(), ('Manager', 'Authenticated'))
+
+ def testGetDomains(self):
+ f = self._makeOne('chris', '123', ['Manager'], [])
+ self.assertEqual(f.getDomains(), ())
+
+ def testRepr(self):
+ f = self._makeOne('flo', '123', ['Manager'], [])
+ self.assertEqual(repr(f), "<User 'flo'>")
+
+ def testReprSpecial(self):
+ from AccessControl.User import NullUnrestrictedUser
+ from AccessControl.User import nobody
+ from AccessControl.User import system
+ # NullUnrestrictedUser is used when there is no emergency user
+ self.assertEqual(repr(NullUnrestrictedUser()),
+ "<NullUnrestrictedUser (None, None)>")
+ self.assertEqual(repr(nobody),
+ "<SpecialUser 'Anonymous User'>")
+ self.assertEqual(repr(system),
+ "<UnrestrictedUser 'System Processes'>")
+
+
class UserFolderTests(unittest.TestCase):
def setUp(self):
@@ -278,60 +382,9 @@
self.failUnless(pw_validate(user.__, PASSWORD))
-class UserTests(unittest.TestCase):
-
- def _getTargetClass(self):
- from AccessControl.User import User
- return User
-
- def _makeOne(self, name, password, roles, domains):
- return self._getTargetClass()(name, password, roles, domains)
-
- def testGetUserName(self):
- f = self._makeOne('chris', '123', ['Manager'], [])
- self.assertEqual(f.getUserName(), 'chris')
-
- def testGetUserId(self):
- f = self._makeOne('chris', '123', ['Manager'], [])
- self.assertEqual(f.getId(), 'chris')
-
- def testBaseUserGetIdEqualGetName(self):
- # this is true for the default user type, but will not
- # always be true for extended user types going forward (post-2.6)
- f = self._makeOne('chris', '123', ['Manager'], [])
- self.assertEqual(f.getId(), f.getUserName())
-
- def testGetPassword(self):
- f = self._makeOne('chris', '123', ['Manager'], [])
- self.assertEqual(f._getPassword(), '123')
-
- def testGetRoles(self):
- f = self._makeOne('chris', '123', ['Manager'], [])
- self.assertEqual(f.getRoles(), ('Manager', 'Authenticated'))
-
- def testGetDomains(self):
- f = self._makeOne('chris', '123', ['Manager'], [])
- self.assertEqual(f.getDomains(), ())
-
- def testRepr(self):
- f = self._makeOne('flo', '123', ['Manager'], [])
- self.assertEqual(repr(f), "<User 'flo'>")
-
- def testReprSpecial(self):
- from AccessControl.User import NullUnrestrictedUser
- from AccessControl.User import nobody
- from AccessControl.User import system
- # NullUnrestrictedUser is used when there is no emergency user
- self.assertEqual(repr(NullUnrestrictedUser()),
- "<NullUnrestrictedUser (None, None)>")
- self.assertEqual(repr(nobody),
- "<SpecialUser 'Anonymous User'>")
- self.assertEqual(repr(system),
- "<UnrestrictedUser 'System Processes'>")
-
-
def test_suite():
suite = unittest.TestSuite()
+ suite.addTest(unittest.makeSuite(BasicUserTests))
+ suite.addTest(unittest.makeSuite(UserTests))
suite.addTest(unittest.makeSuite(UserFolderTests))
- suite.addTest(unittest.makeSuite(UserTests))
return suite
More information about the Zope-Checkins
mailing list