[359] | 1 | import unittest |
---|
| 2 | import os.path |
---|
| 3 | |
---|
| 4 | import transaction |
---|
| 5 | |
---|
| 6 | from Products.Five import zcml |
---|
| 7 | from Products.Five import fiveconfigure |
---|
| 8 | from Testing import ZopeTestCase as ztc |
---|
| 9 | |
---|
| 10 | from Products.PloneTestCase import PloneTestCase as ptc |
---|
| 11 | from Products.PloneTestCase.layer import onsetup |
---|
| 12 | |
---|
| 13 | from collective.transmogrifier.interfaces import ITransmogrifier |
---|
| 14 | |
---|
| 15 | ztc.installProduct('Quills') |
---|
| 16 | |
---|
| 17 | @onsetup |
---|
| 18 | def setup_product(): |
---|
| 19 | fiveconfigure.debug_mode = True |
---|
| 20 | import Products.Five |
---|
| 21 | zcml.load_config('configure.zcml', Products.Five) |
---|
| 22 | import quintagroup.transmogrifier.simpleblog2quills |
---|
| 23 | zcml.load_config('configure.zcml', quintagroup.transmogrifier.simpleblog2quills) |
---|
| 24 | import quintagroup.transmogrifier.simpleblog2quills.tests |
---|
| 25 | zcml.load_config('test_import.zcml', quintagroup.transmogrifier.simpleblog2quills.tests) |
---|
| 26 | # this is needed because 'importStep' unknown directive error is raised somewhere |
---|
| 27 | import Products.GenericSetup |
---|
| 28 | zcml.load_config('meta.zcml', Products.GenericSetup) |
---|
| 29 | import Products.Quills |
---|
| 30 | zcml.load_config('configure.zcml', Products.Quills) |
---|
| 31 | fiveconfigure.debug_mode = False |
---|
| 32 | |
---|
| 33 | setup_product() |
---|
| 34 | ptc.setupPloneSite(products=['Quills']) |
---|
| 35 | |
---|
| 36 | class TestImport(ptc.PloneTestCase): |
---|
| 37 | """ Test importing of PloneFormGen content. |
---|
| 38 | """ |
---|
| 39 | |
---|
| 40 | def afterSetUp(self): |
---|
| 41 | self.addProduct('Quills') |
---|
| 42 | if 'blog' not in self.portal: |
---|
| 43 | # run transmogrifier pipeline |
---|
| 44 | transmogrifier = ITransmogrifier(self.portal) |
---|
| 45 | transmogrifier('test_import') |
---|
| 46 | |
---|
| 47 | def beforeTearDown(self): |
---|
| 48 | transaction.commit() |
---|
| 49 | |
---|
| 50 | def test_site_structure(self): |
---|
| 51 | self.failIf('blog' not in self.portal) |
---|
| 52 | self.failIf('root-entry' not in self.portal.blog) |
---|
| 53 | self.failIf('folder' not in self.portal.blog) |
---|
| 54 | self.failIf('folder-entry' not in self.portal.blog.folder) |
---|
| 55 | |
---|
| 56 | def test_blog(self): |
---|
| 57 | blog = self.portal['blog'] |
---|
| 58 | |
---|
| 59 | self.assertEqual(blog.getPortalTypeName(), 'Weblog') |
---|
| 60 | self.assertEqual(blog['title'], 'Test Blog') |
---|
| 61 | self.assertEqual(blog.Description(), 'This is test blog.') |
---|
| 62 | |
---|
| 63 | def test_blog_entry(self): |
---|
| 64 | entry = self.portal['blog']['root-entry'] |
---|
| 65 | |
---|
| 66 | self.assertEqual(entry.getPortalTypeName(), 'WeblogEntry') |
---|
| 67 | self.assertEqual(entry['title'], 'Root entry') |
---|
| 68 | self.assertEqual(entry.Description(), 'This entry was created in root of blog.') |
---|
| 69 | self.assertEqual(entry.getText(), '<p>We are testing importing of blog entry.</p>') |
---|
| 70 | self.assertEqual(entry.Subject(), ('Plone', 'Zope')) |
---|
| 71 | self.assertEqual(entry.modified().HTML4(), '2007-11-14T10:32:11Z') |
---|
| 72 | # now workflow of WeblogEntry is assumed to be 'plone_workflow' |
---|
| 73 | # but it must be configured in type configuration |
---|
| 74 | self.failIf('plone_workflow' not in entry.workflow_history) |
---|
| 75 | |
---|
| 76 | def test_blog_folder(self): |
---|
| 77 | folder = self.portal['blog']['folder'] |
---|
| 78 | |
---|
| 79 | self.assertEqual(folder.getPortalTypeName(), 'Folder') |
---|
| 80 | self.assertEqual(folder['title'], 'Blog folder') |
---|
| 81 | self.assertEqual(folder.Description(), 'Folder in blog.') |
---|
| 82 | |
---|
| 83 | def test_suite(): |
---|
| 84 | suite = unittest.TestSuite() |
---|
| 85 | suite.addTest(unittest.makeSuite(TestImport)) |
---|
| 86 | return suite |
---|