def create(self): container = OrderedBTreeFolderBase() container.setOrdering(u'partial') container['o1'] = Orderable('o1', 'mt1') container['o2'] = Orderable('o2', 'mt2') container['c1'] = Chaoticle('c1', 'mt3') container['o3'] = Orderable('o3', 'mt1') container['c2'] = Chaoticle('c2', 'mt2') container['c3'] = Chaoticle('c3', 'mt1') container['o4'] = Orderable('o4', 'mt2') self.unordered = ['c3', 'c2', 'c1'] ordering = container.getOrdering() return container, ordering
def create(self): container = OrderedBTreeFolderBase() container.setOrdering(u"partial") container["o1"] = Orderable("o1", "mt1") container["o2"] = Orderable("o2", "mt2") container["c1"] = Chaoticle("c1", "mt3") container["o3"] = Orderable("o3", "mt1") container["c2"] = Chaoticle("c2", "mt2") container["c3"] = Chaoticle("c3", "mt1") container["o4"] = Orderable("o4", "mt2") self.unordered = ["c3", "c2", "c1"] ordering = container.getOrdering() return container, ordering
def create(self): container = OrderedBTreeFolderBase() container.setOrdering(u'partial') container['o1'] = Orderable('o1', 'mt1') container['o2'] = Orderable('o2', 'mt2') container['c1'] = Chaoticle('c1', 'mt3') container['o3'] = Orderable('o3', 'mt1') container['c2'] = Chaoticle('c2', 'mt2') container['c3'] = Chaoticle('c3', 'mt1') container['o4'] = Orderable('o4', 'mt2') self.unordered = ['c1', 'c2', 'c3'] ordering = container.getOrdering() return container, ordering
def testSetOrdering(self): folder = OrderedBTreeFolderBase() folder.setOrdering('unordered') self.failUnless(isinstance(folder.getOrdering(), UnorderedOrdering)) folder.setOrdering() self.failUnless(isinstance(folder.getOrdering(), DefaultOrdering))
def testUnknownOrdering(self): folder = OrderedBTreeFolderBase() folder._ordering = 'foo' self.failUnless(isinstance(folder.getOrdering(), DefaultOrdering))
def testUnorderedOrdering(self): folder = OrderedBTreeFolderBase() folder._ordering = 'unordered' self.failUnless(isinstance(folder.getOrdering(), UnorderedOrdering))
def testDefaultAdapter(self): folder = OrderedBTreeFolderBase() self.failUnless(isinstance(folder.getOrdering(), DefaultOrdering))
class PloneOrderSupportTests(unittest.TestCase): """ tests borrowed from Products.CMFPlone.tests.testOrderSupport """ layer = PLONEFOLDER_INTEGRATION_TESTING def setUp(self): self.folder = OrderedBTreeFolderBase("f1") self.folder['foo'] = DummyObject('foo', 'mt1') self.folder['bar'] = DummyObject('bar', 'mt1') self.folder['baz'] = DummyObject('baz', 'mt1') def testGetObjectPosition(self): self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObject(self): self.folder.moveObjectToPosition('foo', 1) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectToSamePos(self): self.folder.moveObjectToPosition('bar', 1) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectToFirstPos(self): self.folder.moveObjectToPosition('bar', 0) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectToLastPos(self): self.folder.moveObjectToPosition('bar', 2) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveObjectOutLowerBounds(self): # Pos will be normalized to 0 self.folder.moveObjectToPosition('bar', -1) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectOutUpperBounds(self): # Pos will be normalized to 2 self.folder.moveObjectToPosition('bar', 3) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveObjectsUp(self): self.folder.moveObjectsUp(['bar']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectsDown(self): self.folder.moveObjectsDown(['bar']) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveObjectsToTop(self): self.folder.moveObjectsToTop(['bar']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectsToBottom(self): self.folder.moveObjectsToBottom(['bar']) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveTwoObjectsUp(self): self.folder.moveObjectsUp(['bar', 'baz']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testMoveTwoObjectsDown(self): self.folder.moveObjectsDown(['foo', 'bar']) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveTwoObjectsToTop(self): self.folder.moveObjectsToTop(['bar', 'baz']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testMoveTwoObjectsToBottom(self): self.folder.moveObjectsToBottom(['foo', 'bar']) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testOrderObjects(self): self.folder.orderObjects('id') self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testOrderObjectsReverse(self): self.folder.orderObjects('id', reverse=True) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testOrderObjectsByMethod(self): self.folder.orderObjects('dummy_method') self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testOrderObjectsOnlyReverse(self): self.folder.orderObjects(reverse=True) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testSubsetIds(self): self.folder.moveObjectsByDelta(['baz'], -1, ['foo', 'bar', 'baz']) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testSkipObjectsNotInSubsetIds(self): self.folder.moveObjectsByDelta(['baz'], -1, ['foo', 'baz']) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) # no move self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testIgnoreNonObjects(self): # Fix for (http://dev.plone.org/plone/ticket/3959) non # contentish objects cause errors, we should just ignore them self.folder.moveObjectsByDelta(['bar', 'blah'], -1) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testNotifyRemoved(self): ordering = self.folder.getOrdering() self.assertEqual(ordering.idsInOrder(), ['foo', 'bar', 'baz']) # make sure notifyRemoved with non-existent id does not throw error ordering.notifyRemoved('foobar') # normal ordering.notifyRemoved('foo') self.assertEqual(ordering.idsInOrder(), ['bar', 'baz'])
def testUnorderedOrdering(self): folder = OrderedBTreeFolderBase() folder._ordering = 'unordered' self.assertTrue(isinstance(folder.getOrdering(), UnorderedOrdering))
def testDefaultAdapter(self): folder = OrderedBTreeFolderBase() self.assertTrue(isinstance(folder.getOrdering(), DefaultOrdering))
class PloneOrderSupportTests(unittest.TestCase): """ tests borrowed from Products.CMFPlone.tests.testOrderSupport """ layer = PLONEFOLDER_INTEGRATION_TESTING def setUp(self): self.folder = OrderedBTreeFolderBase("f1") self.folder['foo'] = DummyObject('foo', 'mt1') self.folder['bar'] = DummyObject('bar', 'mt1') self.folder['baz'] = DummyObject('baz', 'mt1') def testGetObjectPosition(self): self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObject(self): self.folder.moveObjectToPosition('foo', 1) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectToSamePos(self): self.folder.moveObjectToPosition('bar', 1) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectToFirstPos(self): self.folder.moveObjectToPosition('bar', 0) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectToLastPos(self): self.folder.moveObjectToPosition('bar', 2) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveObjectOutLowerBounds(self): # Pos will be normalized to 0 self.folder.moveObjectToPosition('bar', -1) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectOutUpperBounds(self): # Pos will be normalized to 2 self.folder.moveObjectToPosition('bar', 3) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveObjectsUp(self): self.folder.moveObjectsUp(['bar']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectsDown(self): self.folder.moveObjectsDown(['bar']) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveObjectsToTop(self): self.folder.moveObjectsToTop(['bar']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testMoveObjectsToBottom(self): self.folder.moveObjectsToBottom(['bar']) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveTwoObjectsUp(self): self.folder.moveObjectsUp(['bar', 'baz']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testMoveTwoObjectsDown(self): self.folder.moveObjectsDown(['foo', 'bar']) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testMoveTwoObjectsToTop(self): self.folder.moveObjectsToTop(['bar', 'baz']) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testMoveTwoObjectsToBottom(self): self.folder.moveObjectsToBottom(['foo', 'bar']) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testOrderObjects(self): self.folder.orderObjects('id') self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testOrderObjectsReverse(self): self.folder.orderObjects('id', reverse=True) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testOrderObjectsByMethod(self): self.folder.orderObjects('dummy_method') self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testOrderObjectsOnlyReverse(self): self.folder.orderObjects(reverse=True) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testSubsetIds(self): self.folder.moveObjectsByDelta(['baz'], -1, ['foo', 'bar', 'baz']) self.assertEqual(self.folder.getObjectPosition('foo'), 0) self.assertEqual(self.folder.getObjectPosition('baz'), 1) self.assertEqual(self.folder.getObjectPosition('bar'), 2) def testSkipObjectsNotInSubsetIds(self): self.folder.moveObjectsByDelta(['baz'], -1, ['foo', 'baz']) self.assertEqual(self.folder.getObjectPosition('baz'), 0) self.assertEqual(self.folder.getObjectPosition('bar'), 1) # no move self.assertEqual(self.folder.getObjectPosition('foo'), 2) def testIgnoreNonObjects(self): # Fix for (http://dev.plone.org/plone/ticket/3959) non # contentish objects cause errors, we should just ignore them self.folder.moveObjectsByDelta(['bar', 'blah'], -1) self.assertEqual(self.folder.getObjectPosition('bar'), 0) self.assertEqual(self.folder.getObjectPosition('foo'), 1) self.assertEqual(self.folder.getObjectPosition('baz'), 2) def testNotifyRemoved(self): ordering = self.folder.getOrdering() self.assertEqual( ordering.idsInOrder(), ['foo', 'bar', 'baz'] ) # make sure notifyRemoved with non-existent id does not throw error ordering.notifyRemoved('foobar') # normal ordering.notifyRemoved('foo') self.assertEqual( ordering.idsInOrder(), ['bar', 'baz'] )