def test_wcNewBackwardReferencesCopied( self ): # ensure that new wc back references are copied back to the baseline on checkin doc = self.portal.docs.doc1 self.assertEqual( len(doc.getBackReferences("zebra")), 0) wc = ICheckinCheckoutPolicy( doc ).checkout( self.portal.workarea ) self.portal.docs.doc2.addReference( wc, "zebra") self.assertEqual( len( wc.getBackReferences("zebra")), 1 ) doc = ICheckinCheckoutPolicy( wc ).checkin( "updated") self.assertEqual( len( doc.getBackReferences("zebra")), 1 )
def test_baselineReferencesMaintained(self): # ensure that baseline references are maintained when the object is # checked in copies forward, bkw are not copied, but are maintained. doc = self.portal.docs.doc1 doc.addReference(self.portal.docs, "elephant") self.portal.docs.doc2.addReference(doc) wc = ICheckinCheckoutPolicy(doc).checkout(self.portal.workarea) doc = ICheckinCheckoutPolicy(wc).checkin("updated") # TODO: This fails in Plone 4.1. The new optimized catalog lookups # in the reference catalog no longer filter out non-existing reference # objects. In both Plone 4.0 and 4.1 there's two references, one of # them is a stale catalog entry in the reference catalog. The real fix # is to figure out how the stale catalog entry gets in there self.assertEqual(len(doc.getReferences()), 1) self.assertEqual(len(doc.getBackReferences()), 1)