source: products/quintagroup.pfg.captcha/branches/migration/quintagroup/pfg/captcha/tests/testMigration.py @ 2734

Last change on this file since 2734 was 2734, checked in by mylan, 10 years ago

#222: Added test for migration from old qPloneCaptchaField to new quintagroup.pfg.captcha

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1from base import *
2from Products.PloneTestCase.setup import cleanupPloneSite
3from Products.PloneTestCase.setup import portal_name
4from Products.PloneTestCase.setup import SiteCleanup
5
6class TestMigration(TestCaseNotInstalled):
7    """Migration perform recreation old CaptchaField
8    objects from qPloneCaptchaField product to new
9    CaptchaField from quintagroup.pfg.captcha package.
10
11    Migration based on:
12      * presence old portal type CaptchaField with
13        "qPloneCaptchaField" value in *product* field.
14      * presence of CaptchaField objects on the site.
15
16    This TestCase emulate migration with:
17      1. Install new quintagroup.pfg.captcha package
18         and add test CaptchaField object.
19      2. Change *product" field value in
20         portal_tyeps/CaptchaField FTI
21    Then it install quintagroup.pfg.captcha and test if
22    tested CaptchaField object is recreated and *product*
23    field for portal_type/CaptchaField is changed to
24    quintagroup.pfg.captcha.
25    """
26
27    def afterSetUp(self):
28        self.loginAsPortalOwner()
29        self.qi = self.portal.portal_quickinstaller
30        self.pt = self.portal.portal_types
31        self.prepareToMigration()
32
33    def beforeTearDown(self):
34        self.qi.uninstallProducts(["quintagroup.pfg.captcha",])
35
36    def prepareToMigration(self):
37        # Install types
38        self.addProduct("quintagroup.pfg.captcha")
39        # Add captcha field
40        self.portal.invokeFactory("FormFolder", 'test_form')
41        test_form = self.portal['test_form']
42        test_form.invokeFactory("CaptchaField", 'test_captcha_field')
43        self.cf_path = "test_form/key"
44        self.old_cf = self.portal.unrestrictedTraverse(self.cf_path) 
45        self.assert_(self.old_cf)
46        self.pt['CaptchaField'].manage_changeProperties(product="qPloneCaptchaField")
47        self.qi.manage_delObjects('quintagroup.pfg.captcha')
48
49    def testMigration(self):
50        self.addProduct("quintagroup.pfg.captcha")
51        new_cf = self.portal.unrestrictedTraverse(self.cf_path) 
52        self.assert_(self.old_cf != new_cf)
53
54
55def test_suite():
56    suite = unittest.TestSuite()
57    suite.addTest(unittest.makeSuite(TestMigration))
58    return suite
Note: See TracBrowser for help on using the repository browser.