##############################################################################
#
# Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
#
# This software is distributed under the terms of the Kupu
# License. See LICENSE.txt for license text. For a list of Kupu
# Contributors see CREDITS.txt.
#
##############################################################################
"""Tests for the library tool
$Id: test_resourcetypemapper.py,v 1.1.1.1 2005/08/30 17:10:23 dwinter Exp $
"""
import os, sys
if __name__ == '__main__':
execfile(os.path.join(sys.path[0], 'framework.py'))
import Acquisition
from Testing.ZopeTestCase import ZopeTestCase
# from Products.CMFPlone.tests import PloneTestCase
from Products.kupu.plone.librarytool import KupuLibraryTool
class FakeType:
def __init__(self, id, **kw):
self.id = id
for k in kw:
setattr(self, k, kw[k])
class FakeTypeTool:
def listTypeInfo(self, container=None):
return [ FakeType(f)
for f in "Foo|Bar|Monkey|Ape|Nothing In Here Anymore|Bad Monkey|Bad Ape".split('|') ]
class FakePortal(Acquisition.Implicit):
absolute_url = lambda(self): None
portal_types = FakeTypeTool()
class TestIResourceTypeMapper(ZopeTestCase):
"""Test the implementation of IResourceMapper in KupuLibraryTool"""
def afterSetUp(self):
self.portal = FakePortal()
self.type_map = self.prepare()
def prepare(self):
type_map = KupuLibraryTool()
type_map = type_map.__of__(self.portal)
type_map.addResourceType("foobar", ("Foo", "", "Bar"))
type_map.addResourceType("bonobo", ("Monkey", " Ape\n"))
return type_map
def test_get_portal_types(self):
type_map = self.type_map
self.assertEqual(type_map.getPortalTypesForResourceType("foobar"),
("Foo", "Bar"))
self.assertEqual(type_map.getPortalTypesForResourceType("bonobo"),
("Monkey", "Ape"))
def test_update(self):
type_map = self.type_map
type_info = [
dict(old_type='foobar', resource_type='foobar',
portal_types=("Nothing In Here Anymore",)),
dict(old_type='bonobo', resource_type='chimpanse',
portal_types=("Bad Monkey", "Bad Ape")),
]
type_map.updateResourceTypes(type_info)
self.assertEqual(type_map.getPortalTypesForResourceType("foobar"),
("Nothing In Here Anymore",))
self.assertEqual(type_map.getPortalTypesForResourceType("chimpanse"),
("Bad Monkey", "Bad Ape"))
self.assertRaises(KeyError, type_map.getPortalTypesForResourceType,
"bonobo")
def test_delete(self):
type_map = self.type_map
type_map.deleteResourceTypes(["foobar", "bonobo"])
self.assertRaises(KeyError, type_map.getPortalTypesForResourceType,
"foobar")
self.assertRaises(KeyError, type_map.getPortalTypesForResourceType,
"bonobo")
if __name__ == '__main__':
framework()
else:
# While framework.py provides its own test_suite()
# method the testrunner utility does not.
from unittest import TestSuite, makeSuite
def test_suite():
suite = TestSuite()
suite.addTest(makeSuite(TestIResourceTypeMapper))
return suite
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>