From: russf <svn...@pl...> - 2006-07-01 20:09:54
|
Author: russf Date: Sat Jul 1 20:09:48 2006 New Revision: 25666 Added: Quills/trunk/tests/QuillsLinguaPloneTestCase.py Quills/trunk/tests/test_weblogLinguaPlone.py Log: added "Quills with LinguaPlone" tests (currently failing). See email to quills-dev of 1 July 2006 20:04:14 GMT Added: Quills/trunk/tests/QuillsLinguaPloneTestCase.py ============================================================================== --- (empty file) +++ Quills/trunk/tests/QuillsLinguaPloneTestCase.py Sat Jul 1 20:09:48 2006 @@ -0,0 +1,96 @@ +""" +$Id: +""" +# Merges the init from LinguaPloneTestCase adn QuillsTestCase + +from Testing import ZopeTestCase +try: + from zope.app.testing import setup +except ImportError: + from zope.app.tests import setup +from Products import Five +from Products import Quills +from Products import plonetrackback +from Products import RPCAuth + +# Make the boring stuff load quietly +ZopeTestCase.installProduct('CMFCore', quiet=1) +ZopeTestCase.installProduct('CMFDefault', quiet=1) +ZopeTestCase.installProduct('CMFCalendar', quiet=1) +ZopeTestCase.installProduct('CMFTopic', quiet=1) +ZopeTestCase.installProduct('DCWorkflow', quiet=1) +ZopeTestCase.installProduct('CMFActionIcons', quiet=1) +ZopeTestCase.installProduct('CMFQuickInstallerTool', quiet=1) +ZopeTestCase.installProduct('CMFFormController', quiet=1) +ZopeTestCase.installProduct('GroupUserFolder', quiet=1) +ZopeTestCase.installProduct('TextIndexNG2', quiet=1) +ZopeTestCase.installProduct('SecureMailHost', quiet=1) +ZopeTestCase.installProduct('CMFDynamicViewFTI', quiet=1) +ZopeTestCase.installProduct('CMFPlone') + +ZopeTestCase.installProduct('Archetypes') +ZopeTestCase.installProduct('PortalTransforms', quiet=1) +ZopeTestCase.installProduct('MimetypesRegistry', quiet=1) +ZopeTestCase.installProduct('PloneLanguageTool') + +ZopeTestCase.installProduct('RPCAuth') +ZopeTestCase.installProduct('Quills') +ZopeTestCase.installProduct('plonetrackback') +ZopeTestCase.installProduct('fatsyndication') + +# Make sure the dummy types are registered +from Products.LinguaPlone import examples +from Products.LinguaPlone.tests import dummy +ZopeTestCase.installProduct('LinguaPlone') + +from Products.LinguaPlone.config import IS_PLONE_2_0 +if IS_PLONE_2_0: + ZopeTestCase.installProduct('ExtendedPathIndex') + +from Products.CMFPlone.tests import PloneTestCase +from Products.LinguaPlone.tests import utils +from Testing.ZopeTestCase.utils import setupCoreSessions + +PORTAL_NAME = 'plone_ml' +PRODUCTS = ['Archetypes', 'PloneLanguageTool', 'LinguaPlone', 'Quills'] + +PloneTestCase.setupPloneSite(id=PORTAL_NAME, products=PRODUCTS) + +class QuillsLinguaPloneTestCase(PloneTestCase.PloneTestCase): + + def getPortal(self): + return self.app[PORTAL_NAME] + + def addLanguage(self, language): + self.portal.portal_languages.addSupportedLanguage(language) + + def setLanguage(self, language): + request = self.app.REQUEST + request['set_language'] = language + self.portal.portal_languages.setLanguageBindings() + + class Session(dict): + def set(self, key, value): + self[key] = value + + def _setupCA(self): + """Set up Five/component architecture.""" + setup.placefulSetUp() + Five.zcml.load_config('meta.zcml', Five) + Five.zcml.load_config('permissions.zcml', Five) + Five.zcml.load_config('configure.zcml', Five.site) + Five.zcml.load_config('configure.zcml', Quills) + #Five.zcml.load_config('configure.zcml', basesyndication) + #Five.zcml.load_config('configure.zcml', fatsyndication) + Five.zcml.load_config('configure.zcml', plonetrackback) + Five.zcml.load_config('configure.zcml', RPCAuth) + + def _setup(self): + self._setupCA() + PloneTestCase.PloneTestCase._setup(self) + #these may conflict + self.app.REQUEST['SESSION'] = self.Session() + setupCoreSessions(self.app) + + + Added: Quills/trunk/tests/test_weblogLinguaPlone.py ============================================================================== --- (empty file) +++ Quills/trunk/tests/test_weblogLinguaPlone.py Sat Jul 1 20:09:48 2006 @@ -0,0 +1,144 @@ +""" +$Id: +""" +# Test weblog with LP >= 0.9 + +import os, sys +if __name__ == '__main__': + execfile(os.path.join(sys.path[0], 'framework.py')) + +try: + from Testing import ZopeTestCase + from Products.LinguaPlone.tests import LinguaPloneTestCase + from Products.LinguaPlone.tests.utils import makeContent + from Products.LinguaPlone.tests.utils import makeTranslation + #from Products.LinguaPlone import config + + from Products.Quills.tests import QuillsLinguaPloneTestCase + from Products.Quills import config + import transaction + + class TestWeblogTranslation( + QuillsLinguaPloneTestCase.QuillsLinguaPloneTestCase): + + """ + #This is the code from TestFolderTranslation in the + #Linguaplone test suite. It is used as the basis for the active code + #beneath. Use it as a template and for comparison/sanity check, then + #delete this comment when done. + #--russf + def afterSetUp(self): + self.addLanguage('de') + self.setLanguage('en') + self.folder_en = makeContent(self.folder, 'SimpleFolder', 'folder') + self.folder_en.setLanguage('en') + + def testTranslationKeepSameIdInDifferentFolders(self): + self.folder_de = makeTranslation(self.folder_en, 'de') + english = makeContent(self.folder_en, 'SimpleType', 'doc') + english.setLanguage('en') + german = makeTranslation(english, 'de') + self.assertEqual(english.getId(), german.getId()) + + def testTranslationIsMovedToTranslatedFolder(self): + self.folder_de = makeTranslation(self.folder_en, 'de') + english = makeContent(self.folder_en, 'SimpleType', 'doc') + english.setLanguage('en') + german = makeTranslation(english, 'de') + self.failUnless(english in self.folder_en.objectValues()) + self.failUnless(german in self.folder_de.objectValues()) + + def testFolderTranslationMoveTranslatedContent(self): + english1 = makeContent(self.folder_en, 'SimpleType', 'doc1') + english1.setLanguage('en') + english2 = makeContent(self.folder_en, 'SimpleType', 'doc2') + english2.setLanguage('en') + german1 = makeTranslation(english1, 'de') + german2 = makeTranslation(english2, 'de') + transaction.savepoint(optimistic=True) + self.folder_de = makeTranslation(self.folder_en, 'de') + self.failUnless(english1.getId() in self.folder_en.objectIds()) + self.failUnless(english2.getId() in self.folder_en.objectIds()) + self.failIf(english1.getId() in self.folder_de.objectIds()) + self.failIf(english2.getId() in self.folder_de.objectIds()) + self.failUnless(german1.getId() in self.folder_de.objectIds()) + self.failUnless(german2.getId() in self.folder_de.objectIds()) + self.failIf(german1.getId() in self.folder_en.objectIds()) + self.failIf(german2.getId() in self.folder_en.objectIds()) + + def testSetLanguageMoveTranslatedContent(self): + self.folder_de = makeTranslation(self.folder_en, 'de') + en2de = makeContent(self.folder_en, 'SimpleType', 'doc2') + en2de.setLanguage('en') + transaction.savepoint(optimistic=True) + en2de.setLanguage('de') + self.failIf(en2de.getId() in self.folder_en.objectIds()) + self.failUnless(en2de.getId() in self.folder_de.objectIds()) + """ + def _setup(self): + QuillsLinguaPloneTestCase.QuillsLinguaPloneTestCase._setup(self) + + def afterSetUp(self): + self.login() + self.setRoles(["Manager"]) + self.addLanguage('de') + self.setLanguage('en') + self.weblog_en = makeContent(self.folder, 'Weblog', 'weblog') + self.weblog_en.setLanguage('en') + + def testTranslationKeepSameIdInDifferentFolders(self): + self.weblog_de = makeTranslation(self.weblog_en, 'de') + englishpost = makeContent(self.weblog_en, 'WeblogEntry', 'post') + englishpost.setLanguage('en') + germanpost = makeTranslation(englishpost, 'de') + self.assertEqual(englishpost.getId(), germanpost.getId()) + + def testTranslationIsMovedToTranslatedFolder(self): + self.weblog_de = makeTranslation(self.weblog_en, 'de') + englishpost = makeContent(self.weblog_en, 'WeblogEntry', 'post') + englishpost.setLanguage('en') + germanpost = makeTranslation(englishpost, 'de') + self.failUnless(englishpost in self.weblog_en.objectValues()) + self.failUnless(germanpost in self.weblog_de.objectValues()) + + def testFolderTranslationMoveTranslatedContent(self): + english1 = makeContent(self.weblog_en, 'WeblogEntry', 'entry1') + english1.setLanguage('en') + english2 = makeContent(self.weblog_en, 'WeblogEntry', 'entry2') + english2.setLanguage('en') + german1 = makeTranslation(english1, 'de') + german2 = makeTranslation(english2, 'de') + transaction.savepoint(optimistic=True) + self.weblog_de = makeTranslation(self.weblog_en, 'de') + self.failUnless(english1.getId() in self.weblog_en.objectIds()) + self.failUnless(english2.getId() in self.weblog_en.objectIds()) + self.failIf(english1.getId() in self.weblog_de.objectIds()) + self.failIf(english2.getId() in self.weblog_de.objectIds()) + self.failUnless(german1.getId() in self.weblog_de.objectIds()) + self.failUnless(german2.getId() in self.weblog_de.objectIds()) + self.failIf(german1.getId() in self.weblog_en.objectIds()) + self.failIf(german2.getId() in self.weblog_en.objectIds()) + + def testSetLanguageMoveTranslatedContent(self): + self.weblog_de = makeTranslation(self.weblog_en, 'de') + en2de = makeContent(self.weblog_en, 'WeblogEntry', 'entry2') + en2de.setLanguage('en') + transaction.savepoint(optimistic=True) + en2de.setLanguage('de') + self.failIf(en2de.getId() in self.weblog_en.objectIds()) + self.failUnless(en2de.getId() in self.weblog_de.objectIds()) +except ImportError: + print 'TestWeblogTranslation skipped - needs LinguaPlone >=0.9' + +def test_suite(): + from unittest import TestSuite, makeSuite + suite = TestSuite() + try: + from Products.LinguaPlone.tests import LinguaPloneTestCase + suite.addTest(makeSuite(TestWeblogTranslation)) + except ImportError: + print 'TestWeblogTranslation skipped - needs LinguaPlone >=0.9' + return suite + +if __name__ == '__main__': + framework() |