source: products/quintagroup.pfg.captcha/trunk/quintagroup/pfg/captcha/tests/testMigration.py @ 3212

Last change on this file since 3212 was 3212, checked in by vmaksymiv, 13 years ago

fixed tests plone3.0 compatibility

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1import unittest
2from quintagroup.pfg.captcha.tests.base import TestCaseNotInstalled, \
3    REQUIREMENTS
4
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        for p in REQUIREMENTS:
39            if not self.qi.isProductInstalled(p):
40                self.qi.installProduct(p)
41        # Add captcha field
42        self.portal.invokeFactory("FormFolder", 'test_form')
43        test_form = self.portal['test_form']
44        test_form.invokeFactory("CaptchaField", 'test_captcha_field')
45        self.cf_path = "test_form/key"
46        self.old_cf = self.portal.unrestrictedTraverse(self.cf_path)
47        self.assert_(self.old_cf)
48        self.pt['CaptchaField'].manage_changeProperties(
49            product="qPloneCaptchaField")
50        self.qi.manage_delObjects('quintagroup.pfg.captcha')
51
52    def testMigration(self):
53        self.addProduct("quintagroup.pfg.captcha")
54        new_cf = self.portal.unrestrictedTraverse(self.cf_path)
55        self.assert_(self.old_cf != new_cf)
56
57
58def test_suite():
59    suite = unittest.TestSuite()
60    suite.addTest(unittest.makeSuite(TestMigration))
61    return suite
Note: See TracBrowser for help on using the repository browser.