Annotation of kupuMPIWG/plone/tests/test_librarymanager.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_librarymanager.py 9879 2005-03-18 12:04:00Z yuppie $
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:
22: from Products.kupu.plone.plonelibrarytool import PloneKupuLibraryTool
23:
24: class FakeMembershipTool:
25: isAnonymousUser = lambda self: True
26:
27: class FakePortal(Acquisition.Implicit):
28: absolute_url = lambda(self): None
29: portal_membership = FakeMembershipTool()
30:
31: class FakeContextObject(Acquisition.Implicit):
32:
33: __allow_access_to_unprotected_subobjects__ = True
34: isPrincipiaFolderish = True
35: REQUEST = 42
36: absolute_url = lambda(self): "The answer is 42"
37:
38: class TestILibraryManager(ZopeTestCase):
39: """Test the implementation of ILibraryManger in KupuLibraryTool"""
40:
41: def afterSetUp(self):
42: self.libs = self.makeLibraries()
43:
44: def makeLibraries(self):
45: # need to use Plone specific tool for Acquisition. Sucks.
46: libs = PloneKupuLibraryTool()
47: self.portal = FakePortal()
48: context = FakeContextObject()
49: libs = libs.__of__(self.portal)
50: self.context = context.__of__(self.portal)
51: libs.addLibrary('foo_id', 'Foobar', 'foobar', 'foosrc', 'fooicon')
52: libs.addLibrary('bar_id', 'Barfoo', 'barfoo', 'barsrc', 'baricon')
53: libs.addLibrary('baz_id', 'Baz', 'foobarbaz', 'bazsrc', 'bazicon')
54: return libs
55:
56: def test_get_library(self):
57: libs = self.libs
58: expected = (
59: dict(id='foo_id', title='Foobar', uri='foobar',
60: src='foosrc', icon='fooicon'),
61: dict(id='bar_id', title='Barfoo', uri='barfoo',
62: src='barsrc', icon='baricon'),
63: dict(id='baz_id', title='Baz', uri='foobarbaz',
64: src='bazsrc', icon='bazicon'),
65: )
66: self.assertEqual(libs.getLibraries(self.context), expected)
67:
68: def test_expressions(self):
69: libs = self.libs
70: context = self.context
71: new_libs = (
72: dict(id='foo_id', title='Foobar', uri='python:request',
73: src='foosrc', icon='fooicon'),
74: dict(id='bar_id', title='Barfoo', uri='python:object',
75: src='barsrc', icon='baricon'),
76: dict(id='baz_id', title='Baz', uri='string:${object/absolute_url}',
77: src='bazsrc', icon='bazicon'),
78: )
79: libs.updateLibraries(new_libs)
80:
81: expected = (
82: dict(id='foo_id', title='Foobar', uri=42,
83: src='foosrc', icon='fooicon'),
84: dict(id='bar_id', title='Barfoo', uri=context,
85: src='barsrc', icon='baricon'),
86: dict(id='baz_id', title='Baz', uri="The answer is 42",
87: src='bazsrc', icon='bazicon')
88: )
89: self.assertEqual(libs.getLibraries(context), expected)
90:
91: def test_delete(self):
92: libs = self.libs
93: libs.deleteLibraries([1])
94: expected = (
95: dict(id='foo_id', title='Foobar', uri='foobar',
96: src='foosrc', icon='fooicon'),
97: dict(id='baz_id', title='Baz', uri='foobarbaz',
98: src='bazsrc', icon='bazicon'),
99: )
100: self.assertEqual(libs.getLibraries(self.context), expected)
101:
102: libs = self.makeLibraries()
103: libs.deleteLibraries([0, 1])
104: expected = (
105: dict(id='baz_id', title='Baz', uri='foobarbaz',
106: src='bazsrc', icon='bazicon'),
107: )
108: self.assertEqual(libs.getLibraries(self.context), expected)
109:
110: def test_update(self):
111: libs = self.libs
112: context = self.context
113: new_libs = (
114: dict(id='foo_new_id', title='Newfoo', uri="python:object",
115: src='foonewsrc', icon="foonewicon"),
116: dict(id='just_a_new_id'),
117: dict(src="python:'you stink'.upper()"),
118: )
119: libs.updateLibraries(new_libs)
120: expected = (
121: dict(id='foo_new_id', title='Newfoo', uri=context,
122: src='foonewsrc', icon='foonewicon'),
123: dict(id='just_a_new_id', title='Barfoo', uri='barfoo',
124: src='barsrc', icon='baricon'),
125: dict(id='baz_id', title='Baz', uri='foobarbaz',
126: src="YOU STINK", icon='bazicon'),
127: )
128: self.assertEqual(libs.getLibraries(context), expected)
129:
130: def test_move(self):
131: libs = self.libs
132: libs.moveUp([1])
133: expected = (
134: dict(id='bar_id', title='Barfoo', uri='barfoo',
135: src='barsrc', icon='baricon'),
136: dict(id='foo_id', title='Foobar', uri='foobar',
137: src='foosrc', icon='fooicon'),
138: dict(id='baz_id', title='Baz', uri='foobarbaz',
139: src='bazsrc', icon='bazicon'),
140: )
141: self.assertEqual(libs.getLibraries(self.context), expected)
142:
143: libs.moveDown([1])
144: expected = (
145: dict(id='bar_id', title='Barfoo', uri='barfoo',
146: src='barsrc', icon='baricon'),
147: dict(id='baz_id', title='Baz', uri='foobarbaz',
148: src='bazsrc', icon='bazicon'),
149: dict(id='foo_id', title='Foobar', uri='foobar',
150: src='foosrc', icon='fooicon'),
151: )
152: self.assertEqual(libs.getLibraries(self.context), expected)
153:
154: libs.moveUp([1, 2])
155: expected = (
156: dict(id='baz_id', title='Baz', uri='foobarbaz',
157: src='bazsrc', icon='bazicon'),
158: dict(id='foo_id', title='Foobar', uri='foobar',
159: src='foosrc', icon='fooicon'),
160: dict(id='bar_id', title='Barfoo', uri='barfoo',
161: src='barsrc', icon='baricon'),
162: )
163: self.assertEqual(libs.getLibraries(self.context), expected)
164:
165: libs.moveDown([2])
166: expected = (
167: dict(id='bar_id', title='Barfoo', uri='barfoo',
168: src='barsrc', icon='baricon'),
169: dict(id='foo_id', title='Foobar', uri='foobar',
170: src='foosrc', icon='fooicon'),
171: dict(id='baz_id', title='Baz', uri='foobarbaz',
172: src='bazsrc', icon='bazicon'),
173: )
174: self.assertEqual(libs.getLibraries(self.context), expected)
175:
176: if __name__ == '__main__':
177: framework()
178: else:
179: # While framework.py provides its own test_suite()
180: # method the testrunner utility does not.
181: from unittest import TestSuite, makeSuite
182: def test_suite():
183: suite = TestSuite()
184: suite.addTest(makeSuite(TestILibraryManager))
185: return suite
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>