Ignore:
Timestamp:
Sep 22, 2010 11:38:39 AM (14 years ago)
Author:
mylan
Message:

Added support of migration from qPloneGoogleSitemaps product
to quintagroup.plonegooglesitemaps with tests.
Also all views now registered on own browserlayer.

Merged revisions 3865,3867-3872,3874-3878 via svnmerge from
http://svn.quintagroup.com/products/quintagroup.plonegooglesitemaps/branches/migratioin_product

........

r3865 | mylan | 2010-09-15 20:54:50 +0300 (Wed, 15 Sep 2010) | 1 line


#230: Added module aliases - prevent breakage sitemap, created with qPloneGoogleSitemaps

........

r3867 | mylan | 2010-09-17 11:41:35 +0300 (Fri, 17 Sep 2010) | 1 line


#230: Added browserlayer and registered all sitemaps views and configlet view to it

........

r3868 | mylan | 2010-09-17 13:12:09 +0300 (Fri, 17 Sep 2010) | 1 line


#230: remove module aliases

........

r3869 | mylan | 2010-09-17 13:13:14 +0300 (Fri, 17 Sep 2010) | 1 line


#230: Added migration from qPloneGoogleSitemaps to quintagroup.plonegooglesitemaps

........

r3870 | mylan | 2010-09-17 14:02:47 +0300 (Fri, 17 Sep 2010) | 1 line


#230: Added upgrade/migration step by step reference.

........

r3871 | mylan | 2010-09-17 14:41:04 +0300 (Fri, 17 Sep 2010) | 1 line


#230: Fix tests after registering all views to the browser layer

........

r3872 | mylan | 2010-09-17 14:55:43 +0300 (Fri, 17 Sep 2010) | 1 line


#230: Added uninstallation browserlayer and updated install/uninstall tests

........

r3874 | mylan | 2010-09-20 13:12:26 +0300 (Mon, 20 Sep 2010) | 1 line


#230: Added test for browser layer uninstallation

........

r3875 | mylan | 2010-09-20 15:37:00 +0300 (Mon, 20 Sep 2010) | 1 line


#230: Fix cleanup during migration from the qPloneGoogleSitemaps

........

r3876 | mylan | 2010-09-20 15:38:18 +0300 (Mon, 20 Sep 2010) | 1 line


#230: Fix typos in GS profile and import step

........

r3877 | mylan | 2010-09-20 18:23:20 +0300 (Mon, 20 Sep 2010) | 1 line


#230: Added tests of migration from qPloneGoogleSitemap to quintagroup.plonegooglesitemap.

........

r3878 | mylan | 2010-09-22 14:17:07 +0300 (Wed, 22 Sep 2010) | 1 line


#230: some upgrade tests reorganization

........

Location:
quintagroup.plonegooglesitemaps/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonegooglesitemaps/trunk

    • Property svn:mergeinfo
      •  

        old new  
         1/quintagroup.plonegooglesitemaps/branches/migratioin_product:2826-2839 
        12/quintagroup.plonegooglesitemaps/branches/plone4:2549-2553 
        23/quintagroup.plonegooglesitemaps/branches/test_refactoring:2527-2536 
    • Property svnmerge-integrated changed from /quintagroup.plonegooglesitemaps/branches/migratioin_product:1-3864 /quintagroup.plonegooglesitemaps/branches/test_refactoring:1-3576 /quintagroup.plonegooglesitemaps/branches/plone4:1-3593 to /quintagroup.plonegooglesitemaps/branches/migratioin_product:1-3879 /quintagroup.plonegooglesitemaps/branches/test_refactoring:1-3576 /quintagroup.plonegooglesitemaps/branches/plone4:1-3593
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testUpgrade.py

    r2601 r2841  
    33# 
    44 
     5import logging  
    56from base import * 
    67from zope.component import getSiteManager 
     8from StringIO import StringIO 
    79 
    810from Products.CMFPlone.utils import _createObjectByType 
     
    1113from quintagroup.plonegooglesitemaps import config 
    1214from quintagroup.plonegooglesitemaps import upgrades as gsm_upgrades 
     15from quintagroup.plonegooglesitemaps import setuphandlers as sh 
    1316from quintagroup.canonicalpath.interfaces import ICanonicalPath 
    1417from quintagroup.canonicalpath.interfaces import ICanonicalLink 
     
    104107            self.setup.setLastVersionForProfile(self.profile, orig_ver) 
    105108 
     109try: 
     110    from Products.qPloneGoogleSitemaps.content.sitemap import Sitemap as OldSitemap 
     111except ImportError: 
     112    PRESENT_OLD_PRODUCT = False 
     113else: 
     114    PRESENT_OLD_PRODUCT = True 
     115     
     116class TestMigrationFromProduct(TestCase): 
     117 
     118    def afterSetUp(self): 
     119        super(TestMigrationFromProduct, self).afterSetUp() 
     120        self.patch_logger() 
     121        self.gs = self.portal.portal_setup 
     122        self.profile = u'profile-quintagroup.plonegooglesitemaps:migrate_qPGSM' 
     123        self.step = "migrate_qPGSM" 
     124 
     125    def patch_logger(self): 
     126        logger = logging.Logger("test:GSM", logging.NOTSET) 
     127        self.log = StringIO() 
     128        self.thndlr = logging.StreamHandler(self.log) 
     129        self.thndlr.setLevel(logging.DEBUG) 
     130        self.thndlr.setFormatter(logging.Formatter("%(message)s")) 
     131        logger.addHandler(self.thndlr) 
     132 
     133        self.orig_logger = sh.logger 
     134        sh.logger = logger 
     135 
     136    def beforeTearDown(self): 
     137        sh.logger = self.orig_logger 
     138 
     139    def chkLog(self, chkstr): 
     140        self.thndlr.flush() 
     141        self.log.seek(0) 
     142        logs = self.log.getvalue().split('\n') 
     143        return chkstr in logs 
     144 
     145    def testRemoveOldConfiglet(self): 
     146        chk_str = "Unregistered 'qPloneGoogleSitemaps' "\ 
     147                  "configlet from portal_controlpanel tool." 
     148        # 1. No qPloneGoogleSitemaps configlet 
     149        self.gs.runImportStepFromProfile(self.profile, self.step) 
     150        self.assert_(not self.chkLog(chk_str), self.log.getvalue()) 
     151        # 2. qPloneGoogleSitemaps configlet in portal 
     152        self.portal.portal_controlpanel.registerConfiglet( 
     153            id="qPloneGoogleSitemaps", name="qPloneGoogleSitemaps", 
     154            action="string:") 
     155        self.gs.runImportStepFromProfile(self.profile, self.step) 
     156        self.assert_(self.chkLog(chk_str), self.log.getvalue()) 
     157 
     158    def testRemoveOldSkinLayer(self): 
     159        chk_str = "Removed 'qPloneGoogleSitemaps' from 'Plone Default' skin." 
     160        # 1. No qPloneGoogleSitemaps layer in portal_skins 
     161        self.gs.runImportStepFromProfile(self.profile, self.step) 
     162        self.assert_(not self.chkLog(chk_str), self.log.getvalue()) 
     163        # 2. qPloneGoogleSitemaps layer in portal_skins 
     164        skins = self.portal.portal_skins 
     165        skinpath = 'qPloneGoogleSitemaps,' + skins.getSkinPath("Plone Default") 
     166        skins._getSelections()["Plone Default"] = skinpath 
     167        self.gs.runImportStepFromProfile(self.profile, self.step) 
     168        self.assert_(self.chkLog(chk_str), self.log.getvalue()) 
     169 
     170    def testRecriateOldSitemaps(self): 
     171        chk_str = "Successfully replaced '/%s/sitemap.xml' Sitemap" \ 
     172                  % self.portal.id 
     173        # 1. No old sitemap present in portal 
     174        self.gs.runImportStepFromProfile(self.profile, self.step) 
     175        self.assert_(not self.chkLog(chk_str), self.log.getvalue()) 
     176        # 2. Add old sitemap object in to portal 
     177        self.portal.invokeFactory("Sitemap", 'sitemap.xml') 
     178        self.assert_('sitemap.xml' in self.portal.objectIds(), self.portal.objectIds()) 
     179        sm = self.portal['sitemap.xml'] 
     180        sm.__class__ = OldSitemap 
     181        self.gs.runImportStepFromProfile(self.profile, self.step) 
     182        self.assert_(self.chkLog(chk_str), self.log.getvalue()) 
     183         
    106184 
    107185def test_suite(): 
     
    109187    suite = TestSuite() 
    110188    suite.addTest(makeSuite(TestUpgrade)) 
     189    if PRESENT_OLD_PRODUCT: 
     190        suite.addTest(makeSuite(TestMigrationFromProduct)) 
     191 
    111192    return suite 
    112193 
Note: See TracChangeset for help on using the changeset viewer.