Changeset 35144
- Timestamp:
- 04/12/06 15:45:24 (3 years ago)
- Files:
-
- CPSCore/trunk/ProxyTool.py (modified) (2 diffs)
- CPSCore/trunk/tests/dummy.py (modified) (1 diff)
- CPSCore/trunk/tests/test_indexing.py (modified) (1 diff)
- CPSCore/trunk/tests/test_proxy.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
CPSCore/trunk/ProxyTool.py
r30942 r35144 44 44 REQUEST_LANGUAGE_KEY 45 45 from Products.CPSUtil.session import sessionGet 46 from Products.CPSUtil.integration import isProductPresent 47 try: 48 from Products.CPSSchemas.DataModel import DataModel 49 except ImportError: 50 DATAMODEL_PRESENT = False 51 else: 52 DATAMODEL_PRESENT = True 46 53 47 54 from zope.app.event.interfaces import IObjectModifiedEvent … … 165 172 ob, rev = repotool.copyRevision(docid, from_rev) 166 173 else: 174 dm = kw.get('datamodel') 175 if dm is None and DATAMODEL_PRESENT: 176 dm = DataModel(None) 177 kw['datamodel'] = dm 178 if dm is not None: 179 dm._setObject(None, proxy=proxy) 167 180 ob, rev = repotool.createRevision(docid, type_name, *args, **kw) 168 181 if hasattr(aq_base(ob), 'setLanguage'): CPSCore/trunk/tests/dummy.py
r24888 r35144 65 65 return DummyTypeInfo('Dummy Content') 66 66 return None 67 68 class DummyObjectRepositoryTool(Folder): 69 _last_calls = {} 70 71 def createRevision(self, docid, type_name, *args, **kw): 72 self._last_calls['createRevision'] = {'docid': docid, 73 'type_name': type_name, 74 'args': args, 75 'kw': kw} 76 rev = 17 77 78 id = 'ob_%s_%s' % (docid, rev) #Copy/Paste from DummyProxyTool 79 if id not in self.objectIds(): 80 doc = SimpleItem(id) 81 doc._setId(id) 82 doc.portal_type = 'Some Type' 83 self._setObject(id, doc) 84 return self._getOb(id), rev 85 86 def getFreeDocid(self): 87 return 'a free docid from repotool' 88 89 def isObjectInRepository(self, ob): 90 return ob in self.objectValues() 91 CPSCore/trunk/tests/test_indexing.py
r33451 r35144 70 70 class FakeTI: 71 71 _isTypeInformation = True 72 def _constructInstance(self, container, id ):72 def _constructInstance(self, container, id, **kw): 73 73 ob = DummyOb(id) 74 74 container._setObject(id, ob) CPSCore/trunk/tests/test_proxy.py
r35129 r35144 34 34 35 35 from Products.CPSCore.ProxyTool import ProxyTool 36 from Products.CPSCore.ProxyTool import DATAMODEL_PRESENT 36 37 from Products.CPSCore.ProxyBase import ProxyBase, ProxyFolder 37 38 38 from dummy import DummyPortalUrl, DummyWorkflowTool, DummyRoot 39 from dummy import DummyPortalUrl 40 from dummy import DummyWorkflowTool 41 from dummy import DummyRoot 42 from dummy import DummyTypesTool 43 from dummy import DummyObjectRepositoryTool 39 44 40 45 from Products.CMFCore.permissions import View … … 78 83 self.id = id 79 84 ProxyBase.__init__(self, **kw) 80 81 85 82 86 def sortinfos(infos): … … 264 268 root = self.root 265 269 270 root._setObject('portal_repository', DummyObjectRepositoryTool()) 266 271 root._setObject('portal_proxies', ProxyTool()) 267 272 root._setObject('portal_url', DummyPortalUrl()) 268 273 root._setObject('portal_workflow', DummyWorkflowTool()) 274 root._setObject('portal_types', DummyTypesTool()) 269 275 270 276 root.docs = Folder() … … 340 346 self.assertRaises(KeyError, ptool.getProxyInfosFromDocid, 'blah') 341 347 348 def test_createRevision(self): 349 # see #1608 350 ptool = self.root.portal_proxies 351 ptool.ignore_events = True # Dummy repotool cannot cope 352 353 proxy = ProxyBase(1357, language_revs={'en': 78}) 354 355 # preparing the proxy to insulate what's being tested 356 def getPortalTypeName(): 357 return 'Dummy Content' 358 def dontReindex(): 359 pass 360 proxy.getPortalTypeName = getPortalTypeName 361 proxy.proxyChanged = dontReindex 362 363 # call 364 rev = ptool.createRevision(proxy, 'fr') 365 366 if not DATAMODEL_PRESENT: 367 return 368 369 # datamodel was constructed and tied to the proxy 370 passed = self.root.portal_repository._last_calls['createRevision'] 371 dm = passed['kw'].get('datamodel') 372 self.assert_(dm is not None) 373 self.assertEquals(dm.getProxy(), proxy) 374 375 # previous datamodel stays the same, but is now tied to the proxy 376 from Products.CPSCore.ProxyTool import DataModel 377 dm = DataModel(None) 378 rev = ptool.createRevision(proxy, 'fr2', datamodel=dm) 379 passed = self.root.portal_repository._last_calls['createRevision'] 380 passed_dm = passed['kw'].get('datamodel') 381 self.assert_(passed_dm is dm) 382 self.assertEquals(dm.getProxy(), proxy) 383 384 342 385 343 386 def test_suite():
