Annotation of kupuMPIWG/plone/tests/test_resourcetypemapper.py, revision 1.1
1.1 ! dwinter 1: ##############################################################################
! 2: #
! 3: # Copyright (c) 2003-2005 Kupu Contributors. All rights reserved.
! 4: #
! 5: # This software is distributed under the terms of the Kupu
! 6: # License. See LICENSE.txt for license text. For a list of Kupu
! 7: # Contributors see CREDITS.txt.
! 8: #
! 9: ##############################################################################
! 10: """Tests for the library tool
! 11:
! 12: $Id: test_resourcetypemapper.py 14851 2005-07-21 11:39:15Z duncan $
! 13: """
! 14:
! 15: import os, sys
! 16: if __name__ == '__main__':
! 17: execfile(os.path.join(sys.path[0], 'framework.py'))
! 18:
! 19: import Acquisition
! 20: from Testing.ZopeTestCase import ZopeTestCase
! 21: # from Products.CMFPlone.tests import PloneTestCase
! 22: from Products.kupu.plone.librarytool import KupuLibraryTool
! 23:
! 24: class FakeType:
! 25: def __init__(self, id, **kw):
! 26: self.id = id
! 27: for k in kw:
! 28: setattr(self, k, kw[k])
! 29:
! 30: class FakeTypeTool:
! 31: def listTypeInfo(self, container=None):
! 32: return [ FakeType(f)
! 33: for f in "Foo|Bar|Monkey|Ape|Nothing In Here Anymore|Bad Monkey|Bad Ape".split('|') ]
! 34:
! 35: class FakePortal(Acquisition.Implicit):
! 36: absolute_url = lambda(self): None
! 37: portal_types = FakeTypeTool()
! 38:
! 39:
! 40: class TestIResourceTypeMapper(ZopeTestCase):
! 41: """Test the implementation of IResourceMapper in KupuLibraryTool"""
! 42:
! 43: def afterSetUp(self):
! 44: self.portal = FakePortal()
! 45: self.type_map = self.prepare()
! 46:
! 47: def prepare(self):
! 48: type_map = KupuLibraryTool()
! 49: type_map = type_map.__of__(self.portal)
! 50: type_map.addResourceType("foobar", ("Foo", "", "Bar"))
! 51: type_map.addResourceType("bonobo", ("Monkey", " Ape\n"))
! 52: return type_map
! 53:
! 54: def test_get_portal_types(self):
! 55: type_map = self.type_map
! 56: self.assertEqual(type_map.getPortalTypesForResourceType("foobar"),
! 57: ("Foo", "Bar"))
! 58: self.assertEqual(type_map.getPortalTypesForResourceType("bonobo"),
! 59: ("Monkey", "Ape"))
! 60:
! 61: def test_update(self):
! 62: type_map = self.type_map
! 63: type_info = [
! 64: dict(old_type='foobar', resource_type='foobar',
! 65: portal_types=("Nothing In Here Anymore",)),
! 66: dict(old_type='bonobo', resource_type='chimpanse',
! 67: portal_types=("Bad Monkey", "Bad Ape")),
! 68: ]
! 69: type_map.updateResourceTypes(type_info)
! 70: self.assertEqual(type_map.getPortalTypesForResourceType("foobar"),
! 71: ("Nothing In Here Anymore",))
! 72: self.assertEqual(type_map.getPortalTypesForResourceType("chimpanse"),
! 73: ("Bad Monkey", "Bad Ape"))
! 74: self.assertRaises(KeyError, type_map.getPortalTypesForResourceType,
! 75: "bonobo")
! 76:
! 77: def test_delete(self):
! 78: type_map = self.type_map
! 79: type_map.deleteResourceTypes(["foobar", "bonobo"])
! 80: self.assertRaises(KeyError, type_map.getPortalTypesForResourceType,
! 81: "foobar")
! 82: self.assertRaises(KeyError, type_map.getPortalTypesForResourceType,
! 83: "bonobo")
! 84:
! 85: if __name__ == '__main__':
! 86: framework()
! 87: else:
! 88: # While framework.py provides its own test_suite()
! 89: # method the testrunner utility does not.
! 90: from unittest import TestSuite, makeSuite
! 91: def test_suite():
! 92: suite = TestSuite()
! 93: suite.addTest(makeSuite(TestIResourceTypeMapper))
! 94: return suite
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>