Exemple #1
0
 def testReverseMigrate(self):
     folder = create('Folder', self.portal, 'folder', title='Foo')
     create('Document', folder, 'doc1')
     create('Event', folder, 'event1')
     reverseMigrate(folder)
     btree = aq_base(self.portal.folder)
     self.failUnless(isinstance(btree, BTreeFolder))
     self.failUnless('_objects' in btree.__dict__)
     self.failUnless(hasattr(btree, '_tree'))
     self.failIf('_tree' in btree.__dict__)
     self.assertEqual(btree._tree, None)
     # please note that the default adapter returns empty lists here
     # while the partial one raises `AttributeErrors`
     try:
         self.assertEqual(list(btree.objectValues()), [])
         self.assertEqual(list(btree.objectIds()), [])
     except AttributeError:
         # BBB In Zope 2.13 this always raises AttributeError
         pass
     self.assertEqual(
         btree._objects,
         (
             dict(id='doc1', meta_type='ATDocument'),
             dict(id='event1', meta_type='ATEvent')
         )
     )
     self.assertEqual(btree.getId(), 'folder')
     self.assertEqual(btree.Title(), 'Foo')
Exemple #2
0
 def testIsSaneBTreeFolder(self):
     # positive case
     _createObjectByType('Folder', self.portal, 'btree')
     self.failUnless(isSaneBTreeFolder(self.portal.btree))
     # negative case
     create('Folder', self.portal, 'folder')
     self.failIf(isSaneBTreeFolder(self.portal.folder))
     reverseMigrate(self.portal.folder)
     self.failIf(isSaneBTreeFolder(self.portal.folder))
 def testIsSaneBTreeFolder(self):
     # positive case
     _createObjectByType('Folder', self.portal, 'btree')
     self.assertTrue(isSaneBTreeFolder(self.portal.btree))
     # negative case
     create('Folder', self.portal, 'folder')
     self.assertFalse(isSaneBTreeFolder(self.portal.folder))
     reverseMigrate(self.portal.folder)
     self.assertFalse(isSaneBTreeFolder(self.portal.folder))
Exemple #4
0
 def testIsSaneBTreeFolder(self):
     # positive case
     _createObjectByType('Folder', self.portal, 'btree')
     self.failUnless(isSaneBTreeFolder(self.portal.btree))
     # negative case
     create('Folder', self.portal, 'folder')
     self.failIf(isSaneBTreeFolder(self.portal.folder))
     reverseMigrate(self.portal.folder)
     self.failIf(isSaneBTreeFolder(self.portal.folder))
Exemple #5
0
 def testMigrationViewForNestedFolders(self):
     # nested folders have to be "unmigrated" in bottom-up...
     folder = create('Folder', self.portal, 'test')
     create('Folder', self.portal.test, 'foo')
     create('Folder', self.portal.test, 'bar')
     reverseMigrate(folder)
     self.failIf(isSaneBTreeFolder(folder))
     # start the migration
     view, headers, output, request = getView(self.portal, 'migrate-btrees')
     view()      # call the view, triggering the migration
     num = self.getNumber(output)
     self.assertEqual(num, 3)
     self.failUnless(isSaneBTreeFolder(self.portal.test))
     self.failUnless(isSaneBTreeFolder(self.portal.test.foo))
     self.failUnless(isSaneBTreeFolder(self.portal.test.bar))
Exemple #6
0
 def testMigrationViewForNestedFolders(self):
     # nested folders have to be "unmigrated" in bottom-up...
     folder = create('Folder', self.portal, 'test')
     create('Folder', self.portal.test, 'foo')
     create('Folder', self.portal.test, 'bar')
     reverseMigrate(folder)
     self.failIf(isSaneBTreeFolder(folder))
     # start the migration
     view, headers, output, request = getView(self.portal, 'migrate-btrees')
     view()  # call the view, triggering the migration
     num = self.getNumber(output)
     self.assertEqual(num, 3)
     self.failUnless(isSaneBTreeFolder(self.portal.test))
     self.failUnless(isSaneBTreeFolder(self.portal.test.foo))
     self.failUnless(isSaneBTreeFolder(self.portal.test.bar))
Exemple #7
0
 def testNestedReverseMigrate(self):
     folder = create('Folder', self.portal, 'foo')
     create('Folder', folder, 'bar')
     reverseMigrate(folder)
     foo = aq_base(self.portal.foo)
     self.failUnless(isinstance(foo, BTreeFolder))
     self.failUnless('_objects' in foo.__dict__)
     self.failUnless(hasattr(foo, '_tree'))
     self.failIf('_tree' in foo.__dict__)
     self.assertEqual(foo._tree, None)
     self.assertEqual(foo._objects,
         (dict(id='bar', meta_type='NonBTreeFolder'), ))
     bar = aq_base(getattr(foo, 'bar'))
     self.failUnless(isinstance(bar, BTreeFolder))
     self.failIf('_objects' in bar.__dict__)   # no sub-objects
     self.assertEqual(bar._objects, ())
     self.failUnless(hasattr(bar, '_tree'))
     self.failIf('_tree' in bar.__dict__)
     self.assertEqual(bar._tree, None)
     self.assertEqual(bar._objects, ())
Exemple #8
0
 def testMigrationViewWithSubobjects(self):
     # set up an (unmigrated) folder with subobjects
     folder = create('Folder', self.portal, 'test', title='Foo')
     create('Document', folder, 'doc1')
     create('Event', folder, 'event1')
     reverseMigrate(folder)
     folder = self.portal.test  # get the object again...
     self.failIf(isSaneBTreeFolder(folder))
     # now test its migration...
     view, headers, output, request = getView(self.portal, 'migrate-btrees')
     view()  # call the view, triggering the migration
     num = self.getNumber(output)
     self.assertEqual(num, 1)
     folder = self.portal.test  # get the object again...
     self.failUnless(isSaneBTreeFolder(folder))
     self.assertEqual(folder.getId(), 'test')
     self.assertEqual(folder.Title(), 'Foo')
     self.assertEqual(len(folder.objectValues()), 2)
     self.assertEqual(set(folder.objectIds()), set(['doc1', 'event1']))
     self.assertEqual(IOrdering(folder).idsInOrder(), ['doc1', 'event1'])
Exemple #9
0
 def testNestedReverseMigrate(self):
     folder = create('Folder', self.portal, 'foo')
     create('Folder', folder, 'bar')
     reverseMigrate(folder)
     foo = aq_base(self.portal.foo)
     self.failUnless(isinstance(foo, BTreeFolder))
     self.failUnless('_objects' in foo.__dict__)
     self.failUnless(hasattr(foo, '_tree'))
     self.failIf('_tree' in foo.__dict__)
     self.assertEqual(foo._tree, None)
     self.assertEqual(foo._objects,
                      (dict(id='bar', meta_type='NonBTreeFolder'), ))
     bar = aq_base(getattr(foo, 'bar'))
     self.failUnless(isinstance(bar, BTreeFolder))
     self.failIf('_objects' in bar.__dict__)  # no sub-objects
     self.assertEqual(bar._objects, ())
     self.failUnless(hasattr(bar, '_tree'))
     self.failIf('_tree' in bar.__dict__)
     self.assertEqual(bar._tree, None)
     self.assertEqual(bar._objects, ())
 def testReverseMigrate(self):
     folder = create('Folder', self.portal, 'folder', title='Foo')
     create('Document', folder, 'doc1')
     create('Event', folder, 'event1')
     reverseMigrate(folder)
     btree = aq_base(self.portal.folder)
     self.assertTrue(isinstance(btree, BTreeFolder))
     self.assertTrue('_objects' in btree.__dict__)
     self.assertTrue(hasattr(btree, '_tree'))
     self.assertFalse('_tree' in btree.__dict__)
     self.assertEqual(btree._tree, None)
     self.assertEqual(
         btree._objects,
         (
             dict(id='doc1', meta_type='ATDocument'),
             dict(id='event1', meta_type='ATEvent')
         )
     )
     self.assertEqual(btree.getId(), 'folder')
     self.assertEqual(btree.Title(), 'Foo')
Exemple #11
0
 def testReverseMigrate(self):
     folder = create('Folder', self.portal, 'folder', title='Foo')
     create('Document', folder, 'doc1')
     create('Event', folder, 'event1')
     reverseMigrate(folder)
     btree = aq_base(self.portal.folder)
     self.failUnless(isinstance(btree, BTreeFolder))
     self.failUnless('_objects' in btree.__dict__)
     self.failUnless(hasattr(btree, '_tree'))
     self.failIf('_tree' in btree.__dict__)
     self.assertEqual(btree._tree, None)
     self.assertEqual(
         btree._objects,
         (
             dict(id='doc1', meta_type='ATDocument'),
             dict(id='event1', meta_type='ATEvent')
         )
     )
     self.assertEqual(btree.getId(), 'folder')
     self.assertEqual(btree.Title(), 'Foo')
Exemple #12
0
 def testMigrationViewWithSubobjects(self):
     # set up an (unmigrated) folder with subobjects
     folder = create('Folder', self.portal, 'test', title='Foo')
     create('Document', folder, 'doc1')
     create('Event', folder, 'event1')
     reverseMigrate(folder)
     folder = self.portal.test               # get the object again...
     self.failIf(isSaneBTreeFolder(folder))
     # now test its migration...
     view, headers, output, request = getView(self.portal, 'migrate-btrees')
     view()      # call the view, triggering the migration
     num = self.getNumber(output)
     self.assertEqual(num, 1)
     folder = self.portal.test               # get the object again...
     self.failUnless(isSaneBTreeFolder(folder))
     self.assertEqual(folder.getId(), 'test')
     self.assertEqual(folder.Title(), 'Foo')
     self.assertEqual(len(folder.objectValues()), 2)
     self.assertEqual(set(folder.objectIds()), set(['doc1', 'event1']))
     self.assertEqual(IOrdering(folder).idsInOrder(), ['doc1', 'event1'])
 def testFolderMigration(self):
     from plone.app.folder.tests.content import create
     from plone.app.folder.tests.test_migration import reverseMigrate
     from plone.app.folder.tests.test_migration import isSaneBTreeFolder
     # create a folder in an unmigrated state & check it's broken...
     folder = create('Folder', self.portal, 'foo', title='Foo')
     reverseMigrate(self.portal)
     self.assertFalse(isSaneBTreeFolder(self.portal.foo))
     # now run the migration step...
     migrateFolders(self.portal)
     folder = self.portal.foo
     self.assertTrue(isSaneBTreeFolder(folder))
     self.assertEqual(folder.getId(), 'foo')
     self.assertEqual(folder.Title(), 'Foo')
Exemple #14
0
 def testFolderMigration(self):
     from plone.app.folder.tests.content import create
     from plone.app.folder.tests.test_migration import reverseMigrate
     from plone.app.folder.tests.test_migration import isSaneBTreeFolder
     # create a folder in an unmigrated state & check it's broken...
     folder = create('Folder', self.portal, 'foo', title='Foo')
     reverseMigrate(self.portal)
     self.assertFalse(isSaneBTreeFolder(self.portal.foo))
     # now run the migration step...
     migrateFolders(self.portal)
     folder = self.portal.foo
     self.assertTrue(isSaneBTreeFolder(folder))
     self.assertEqual(folder.getId(), 'foo')
     self.assertEqual(folder.Title(), 'Foo')
Exemple #15
0
 def testReverseMigrate(self):
     folder = create('Folder', self.portal, 'folder', title='Foo')
     create('Document', folder, 'doc1')
     create('Event', folder, 'event1')
     reverseMigrate(folder)
     btree = aq_base(self.portal.folder)
     self.failUnless(isinstance(btree, BTreeFolder))
     self.failUnless('_objects' in btree.__dict__)
     self.failUnless(hasattr(btree, '_tree'))
     self.failIf('_tree' in btree.__dict__)
     self.assertEqual(btree._tree, None)
     # please note that the default adapter returns empty lists here
     # while the partial one raises `AttributeErrors`
     try:
         self.assertEqual(list(btree.objectValues()), [])
         self.assertEqual(list(btree.objectIds()), [])
     except AttributeError:
         # BBB In Zope 2.13 this always raises AttributeError
         pass
     self.assertEqual(btree._objects,
                      (dict(id='doc1', meta_type='ATDocument'),
                       dict(id='event1', meta_type='ATEvent')))
     self.assertEqual(btree.getId(), 'folder')
     self.assertEqual(btree.Title(), 'Foo')
Exemple #16
0
 def makeUnmigratedFolder(self, context, name, **kw):
     """ create a folder in an unmigrated state """
     folder = create('Folder', context, name, **kw)
     reverseMigrate(folder)
     self.failIf(isSaneBTreeFolder(folder))
     return context[name]
Exemple #17
0
 def makeUnmigratedFolder(self, context, name, **kw):
     """ create a folder in an unmigrated state """
     folder = create('Folder', context, name, **kw)
     reverseMigrate(folder)
     self.failIf(isSaneBTreeFolder(folder))
     return context[name]