Changeset 2418 in products


Ignore:
Timestamp:
May 31, 2010 5:38:58 PM (14 years ago)
Author:
mylan
Message:

#131: Added tests for upgrade from 1.2 to 1.3 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testUpgrade.py

    r2390 r2418  
    44 
    55from base import * 
     6from zope.component import getSiteManager 
     7 
    68from Products.CMFPlone.utils import _createObjectByType 
    79from Products.GenericSetup.upgrade import _upgrade_registry 
     10from archetypes.schemaextender.interfaces import ISchemaExtender 
    811from quintagroup.plonegooglesitemaps import config 
    912from quintagroup.plonegooglesitemaps import upgrades as gsm_upgrades 
    1013from quintagroup.canonicalpath.interfaces import ICanonicalPath 
    1114from quintagroup.canonicalpath.interfaces import ICanonicalLink 
     15from quintagroup.plonegooglesitemaps.content.newsextender import NewsExtender 
    1216 
    1317class TestUpgrade(TestCase): 
     
    2630        # Test upgrade steps 
    2731        upgrades = self.setup.listUpgrades(self.profile, show_old=True) 
    28         self.assertEqual(len(upgrades), 2) 
     32        self.assertEqual(len(upgrades), 3) 
    2933        self.assertEqual(upgrades[0]["title"].endswith("1.0 to 1.1"), True) 
    3034        self.assertEqual(upgrades[1]["title"].endswith("1.1 to 1.2"), True) 
     35        self.assertEqual(upgrades[2]["title"].endswith("1.2 to 1.3"), True) 
    3136 
    3237    def test_upgradeSetupRegistration(self): 
     
    3540        self.assertEqual("quintagroup.plonegooglesitemaps:upgrade_1_0_to_1_1" in pids, True) 
    3641        self.assertEqual("quintagroup.plonegooglesitemaps:upgrade_1_1_to_1_2" in pids, True) 
     42        self.assertEqual("quintagroup.plonegooglesitemaps:upgrade_1_2_to_1_3" in pids, True) 
    3743 
    3844    def test_step_1_0_to_1_1(self): 
     
    8389        self.assertEqual(brain.canonical_link, fldr_clink) 
    8490 
    85     def testUpgradeCallOnReinstall(self): 
     91    def test_step_1_2_to_1_3(self): 
     92        # Prepare testing data 
     93        cols = ["Language", "gsm_access", "gsm_genres"] 
     94        lsm = getSiteManager(self.portal) 
     95        catalog = self.portal.portal_catalog 
     96        # Remove tested columns, if its exists 
     97        [catalog.delColumn(col) for col in cols if col in catalog._catalog.names] 
     98        # Remove schema extender adapter from local component registry, if its exists 
     99        for r in tuple(lsm.registeredAdapters()): 
     100            if r.factory == NewsExtender: 
     101                lsm.unregisterAdapter(factory=r.factory, name=r.name, 
     102                    required=r.required, provided=r.provided) 
     103        # Upgrade to 1.3 version 
     104        step = self.getUpgradeStep(3) 
     105        if step is not None: 
     106            step.doStep(self.setup) 
     107        # Test if columns added to portal_catalog 
     108        for col in cols: 
     109            self.assertEqual(col in catalog._catalog.names, True) 
     110        # Test if schema extender adapter added into local component registry 
     111        factories = [r.factory for r in tuple(lsm.registeredAdapters())] 
     112        self.assertEqual(NewsExtender in factories, True) 
     113 
     114    def testUpgradeCallOnQIReinstall(self): 
    86115        # Get upgrade steps 
    87116        upgrades = _upgrade_registry.getUpgradeStepsForProfile(self.profile) 
     
    92121            upgrades[1].handler = lambda st:called.append("1.0 to 1.1") 
    93122            upgrades[2].handler = lambda st:called.append("1.1 to 1.2") 
     123            upgrades[3].handler = lambda st:called.append("1.2 to 1.3") 
    94124            # Run reinstallation 
    95125            self.portal.portal_quickinstaller.reinstallProducts(products=config.PROJECTNAME) 
     
    97127            self.assertEqual("1.0 to 1.1" in called, True) 
    98128            self.assertEqual("1.1 to 1.2" in called, True) 
     129            self.assertEqual("1.2 to 1.3" in called, True) 
    99130        finally: 
    100131            # Restore original upgrade handlers 
    101132            upgrades[1].handler = gsm_upgrades.upgrade_1_0_to_1_1 
    102133            upgrades[2].handler = gsm_upgrades.upgrade_1_1_to_1_2 
     134            upgrades[3].handler = gsm_upgrades.upgrade_1_2_to_1_3 
    103135 
    104136         
Note: See TracChangeset for help on using the changeset viewer.