Annotation of kupuMPIWG/plone/tests/test_resourcetypemapper.py, revision 1.1.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>