[Zope-Checkins] CVS: Zope3/lib/python/Zope/App/Security/tests - testPrincipalDirective.py:1.1.2.1

Jim Fulton jim@zope.com
Wed, 12 Dec 2001 18:01:29 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/App/Security/tests
In directory cvs.zope.org:/tmp/cvs-serv3522/tests

Added Files:
      Tag: Zope-3x-branch
	testPrincipalDirective.py 
Log Message:
Added a principal configuration directive.


=== Added File Zope3/lib/python/Zope/App/Security/tests/testPrincipalDirective.py ===
##############################################################################
# Copyright (c) 2001 Zope Corporation and Contributors.  All Rights Reserved.
# 
# This software is subject to the provisions of the Zope Public License,
# Version 1.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, sys

from Zope.Configuration.xmlconfig import xmlconfig
from StringIO import StringIO
from Zope.App.Security.PrincipalRegistry import globalRegistry
from Zope.App.Security.metaConfigure import metaConfigure

metaConfigure()

def configfile(s):
    return StringIO("""<zopeConfigure
      xmlns='http://namespaces.zope.org/zope'
      xmlns:security='http://namespaces.zope.org/security'>
      %s
      </zopeConfigure>
      """ % s)

class Test(unittest.TestCase):

    def setUp(self): globalRegistry.clear()
    def tearDown(self): globalRegistry.clear()

    def testRegister(self):
        f = configfile("""<security:principal principal="1"
                             title="Sir Tim Peters"
                             description="Tim Peters"
                             login="tim" password="123" />
                          <security:principal principal="2"
                             title="Sir Jim Fulton"
                             description="Jim Fulton"
                             login="jim" password="123" />""")
        xmlconfig(f)

        reg=globalRegistry
        
        p = reg.getPrincipal('1')
        self.assertEqual(p.getId(), '1')
        self.assertEqual(p.getTitle(), 'Sir Tim Peters')
        self.assertEqual(p.getDescription(), 'Tim Peters')
        p = reg.getPrincipal('2')
        self.assertEqual(p.getId(), '2')
        self.assertEqual(p.getTitle(), 'Sir Jim Fulton')
        self.assertEqual(p.getDescription(), 'Jim Fulton')

        self.assertEqual(len(reg.getPrincipals('')), 2)

        

def test_suite():
    loader=unittest.TestLoader()
    return loader.loadTestsFromTestCase(Test)

if __name__=='__main__':
    unittest.TextTestRunner().run(test_suite())