source: products/quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/base.py @ 3163

Last change on this file since 3163 was 3163, checked in by zidane, 13 years ago

fixes pyflakes and pylint

  • Property svn:eol-style set to native
File size: 3.9 KB
RevLine 
[2382]1#
2# Tests for quintagroup.plonegooglesitemaps
3#
4
[2538]5from zope.interface import Interface
[2841]6from zope.interface import alsoProvides
[2382]7from Testing import ZopeTestCase as ztc
8
9from Products.Five import zcml
10from Products.Five import fiveconfigure
11
12from Products.PloneTestCase import PloneTestCase as ptc
[2394]13from Products.PloneTestCase.setup import portal_owner
14from Products.PloneTestCase.setup import default_password
[2382]15
16import quintagroup.plonegooglesitemaps
[2538]17from quintagroup.plonegooglesitemaps.browser import mobilesitemapview
[2841]18from quintagroup.plonegooglesitemaps.interfaces import IGoogleSitemapsLayer
[2382]19
[3002]20from collective.testcaselayer.ptc import BasePTCLayer, ptc_layer
21
[2382]22quintagroup.plonegooglesitemaps.config.testing = 1
23quintagroup.plonegooglesitemaps.config.UPDATE_CATALOG = True
24
[2555]25PRODUCT = 'quintagroup.plonegooglesitemaps'
[2382]26
[2555]27
[3002]28class NotInstalled(BasePTCLayer):
29    """Initialize the package, without installation into portal
[2555]30    """
[3002]31    def afterSetUp(self):
32        fiveconfigure.debug_mode = True
33        import quintagroup.plonegooglesitemaps
34        zcml.load_config('configure.zcml', quintagroup.plonegooglesitemaps)
35        zcml.load_config('overrides.zcml', quintagroup.plonegooglesitemaps)
36        fiveconfigure.debug_mode = False
[2555]37
[3002]38        if not ptc.PLONE31:
39            ztc.installProduct("plone.browserlayer")
[2555]40
[3002]41        ztc.installPackage(PRODUCT)
[2555]42
43
[3002]44class Installed(BasePTCLayer):
45    """ Install product into the portal
46    """
47    def afterSetUp(self):
48        if not ptc.PLONE31:
49            self.addProduct("plone.browserlayer")
50        self.addProduct(PRODUCT)
51
[3152]52
[3002]53class UnInstalled(BasePTCLayer):
54    """ UnInstall product from the portal
55    """
56    def afterSetUp(self):
57        qi = getattr(self.portal, 'portal_quickinstaller', None)
[3152]58        qi.uninstallProducts(products=[PRODUCT, ])
[3002]59
60
[3152]61NotInstalledLayer = NotInstalled([ptc_layer, ])
62InstalledLayer = Installed([NotInstalledLayer, ])
63UnInstalledLayer = UnInstalled([InstalledLayer, ])
[3002]64
65
[2538]66class IMobileMarker(Interface):
67    """Test Marker interface for mobile objects"""
68
69
70class MixinTestCase(object):
[2382]71    """ Define layer and common afterSetup method with package installation.
72        Package installation on plone site setup impossible because of
73        five's registerPackage directive not recognized on module initializing.
74    """
75    def afterSetUp(self):
76        self.loginAsPortalOwner()
[2538]77        self.workflow = self.portal.portal_workflow
78        self.orig_mobile_ifaces = None
[2841]79        alsoProvides(self.portal.REQUEST, IGoogleSitemapsLayer)
[2382]80
[2538]81    def patchMobile(self):
82        # patch mobile sitemap view
83        self.orig_mobile_ifaces = mobilesitemapview.MOBILE_INTERFACES
[3152]84        mobilesitemapview.MOBILE_INTERFACES = [IMobileMarker.__identifier__, ]
[2382]85
[2538]86    def beforeTearDown(self):
[3002]87        if getattr(self, 'orig_mobile_ifaces', None) is not None:
[2538]88            mobilesitemapview.MOBILE_INTERFACES = self.orig_mobile_ifaces
89
90
[3002]91class TestCaseNotInstalled(ptc.PloneTestCase):
92    layer = NotInstalledLayer
[2382]93
[3152]94
[3002]95class TestCase(ptc.PloneTestCase, MixinTestCase):
96    layer = InstalledLayer
[2538]97
[3002]98    def afterSetUp(self):
99        ptc.PloneTestCase.afterSetUp(self)
100        MixinTestCase.afterSetUp(self)
[2382]101
[3002]102    def beforeTearDown(self):
103        ptc.PloneTestCase.beforeTearDown(self)
104        MixinTestCase.beforeTearDown(self)
105
106
107class TestCaseUnInstalled(ptc.PloneTestCase):
108    layer = UnInstalledLayer
109
110
111class FunctionalTestCaseNotInstalled(ptc.FunctionalTestCase):
112    layer = NotInstalledLayer
113
[3152]114
[3002]115class FunctionalTestCase(ptc.FunctionalTestCase, MixinTestCase):
116    layer = InstalledLayer
117
[2538]118    def afterSetUp(self):
[3002]119        ptc.FunctionalTestCase.afterSetUp(self)
120        MixinTestCase.afterSetUp(self)
[2538]121        self.auth = "%s:%s" % (portal_owner, default_password)
122
[3002]123    def beforeTearDown(self):
124        ptc.FunctionalTestCase.beforeTearDown(self)
125        MixinTestCase.beforeTearDown(self)
126
[3152]127
[3002]128class FunctionalTestCaseUnInstalled(ptc.FunctionalTestCase):
129    layer = UnInstalledLayer
Note: See TracBrowser for help on using the repository browser.