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:
5 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/base.py

    r2555 r2841  
    1111from zope.interface import Interface 
    1212from zope.component import testing 
     13from zope.interface import alsoProvides 
    1314from Testing import ZopeTestCase as ztc 
    1415 
     
    2728from quintagroup.plonegooglesitemaps.config import PROJECTNAME 
    2829from quintagroup.plonegooglesitemaps.config import ping_googlesitemap 
     30from quintagroup.plonegooglesitemaps.config import SUPPORT_BLAYER  
    2931from quintagroup.plonegooglesitemaps.browser import mobilesitemapview 
     32from quintagroup.plonegooglesitemaps.interfaces import IGoogleSitemapsLayer 
    3033 
    3134quintagroup.plonegooglesitemaps.config.testing = 1 
     
    7073        self.workflow = self.portal.portal_workflow 
    7174        self.orig_mobile_ifaces = None 
     75        alsoProvides(self.portal.REQUEST, IGoogleSitemapsLayer) 
    7276 
    7377    def patchMobile(self): 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testInstallation.py

    r2747 r2841  
    103103        self.assertEqual(brain.gsm_stock, gsm_stock) 
    104104 
     105    def test_browser_layer(self): 
     106        if not SUPPORT_BLAYER: 
     107            return 
     108 
     109        from plone.browserlayer import utils 
     110        self.assert_(IGoogleSitemapsLayer in utils.registered_layers(), 
     111                     "Not registered 'IGoogleSitemapsLayer' browser layer") 
     112 
    105113 
    106114class TestGoogleSitemapsUninstallation(TestCase): 
     
    125133            'Configlet found after uninstallation') 
    126134 
     135    def test_browserlayer_uninstall(self): 
     136        if not SUPPORT_BLAYER: 
     137            return 
     138 
     139        from plone.browserlayer import utils 
     140        self.assertEqual(IGoogleSitemapsLayer in utils.registered_layers(), False, 
     141            "Still registered 'IGoogleSitemapsLayer' browser layer") 
     142 
    127143 
    128144def test_suite(): 
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testNewsSitemaps.py

    r2750 r2841  
    259259                            sitemapType="news") 
    260260        context = self.portal['news-sitemaps'] 
    261         self.nsmv = queryMultiAdapter((context, TestRequest()), name="news-sitemap.xml") 
     261        request = TestRequest() 
     262        alsoProvides(request, IGoogleSitemapsLayer) 
     263        self.nsmv = queryMultiAdapter((context, request), name="news-sitemap.xml") 
    262264 
    263265        self.brain = self.portal.portal_catalog(portal_type="Document")[0] 
  • 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.