source: products/quintagroup.plonegooglesitemaps/branches/migratioin_product/quintagroup/plonegooglesitemaps/tests/base.py @ 3565

Last change on this file since 3565 was 2833, checked in by mylan, 14 years ago

#230: Added uninstallation browserlayer and updated install/uninstall tests

  • Property svn:eol-style set to native
File size: 3.1 KB
RevLine 
[2382]1#
2# Tests for quintagroup.plonegooglesitemaps
3#
4
5import re, sys
6from urllib import urlencode
7from StringIO import StringIO
8import unittest
9
10from zope.testing import doctestunit
[2538]11from zope.interface import Interface
[2382]12from zope.component import testing
[2832]13from zope.interface import alsoProvides
[2382]14from Testing import ZopeTestCase as ztc
15
16from Products.Five import zcml
17from Products.Five import fiveconfigure
18
19from Products.PloneTestCase import PloneTestCase as ptc
[2555]20from Products.PloneTestCase.layer import onsetup
[2382]21from Products.PloneTestCase.layer import PloneSite
[2394]22from Products.PloneTestCase.setup import portal_owner
23from Products.PloneTestCase.setup import default_password
[2382]24
25from XMLParser import parse, hasURL
26
27import quintagroup.plonegooglesitemaps
[2386]28from quintagroup.plonegooglesitemaps.config import PROJECTNAME
[2382]29from quintagroup.plonegooglesitemaps.config import ping_googlesitemap
[2833]30from quintagroup.plonegooglesitemaps.config import SUPPORT_BLAYER
[2538]31from quintagroup.plonegooglesitemaps.browser import mobilesitemapview
[2832]32from quintagroup.plonegooglesitemaps.interfaces import IGoogleSitemapsLayer
[2382]33
34quintagroup.plonegooglesitemaps.config.testing = 1
35quintagroup.plonegooglesitemaps.config.UPDATE_CATALOG = True
36
[2555]37PRODUCT = 'quintagroup.plonegooglesitemaps'
[2382]38
[2555]39@onsetup
40def setup_product():
41    """Set up the package and its dependencies.
42
43    The @onsetup decorator causes the execution of this body to be
44    deferred until the setup of the Plone site testing layer. We could
45    have created our own layer, but this is the easiest way for Plone
46    integration tests.
47    """
48    fiveconfigure.debug_mode = True
49    import quintagroup.plonegooglesitemaps
50    zcml.load_config('configure.zcml', quintagroup.plonegooglesitemaps)
51    zcml.load_config('overrides.zcml', quintagroup.plonegooglesitemaps)
52    fiveconfigure.debug_mode = False
53
54    ztc.installPackage(PRODUCT)
55
56setup_product()
57ptc.setupPloneSite( products=(PRODUCT,))
58
59
[2538]60class IMobileMarker(Interface):
61    """Test Marker interface for mobile objects"""
62
63
64class MixinTestCase(object):
[2382]65    """ Define layer and common afterSetup method with package installation.
66        Package installation on plone site setup impossible because of
67        five's registerPackage directive not recognized on module initializing.
68    """
69    layer = PloneSite
70
71    def afterSetUp(self):
72        self.loginAsPortalOwner()
[2538]73        self.workflow = self.portal.portal_workflow
74        self.orig_mobile_ifaces = None
[2832]75        alsoProvides(self.portal.REQUEST, IGoogleSitemapsLayer)
[2382]76
[2538]77    def patchMobile(self):
78        # patch mobile sitemap view
79        self.orig_mobile_ifaces = mobilesitemapview.MOBILE_INTERFACES
80        mobilesitemapview.MOBILE_INTERFACES = [IMobileMarker.__identifier__,]
[2382]81
[2538]82    def beforeTearDown(self):
83        if self.orig_mobile_ifaces is not None:
84            mobilesitemapview.MOBILE_INTERFACES = self.orig_mobile_ifaces
85
86
[2382]87class TestCase(MixinTestCase, ptc.PloneTestCase):
88    """ For unit tests """
89
[2538]90
[2382]91class FunctionalTestCase(MixinTestCase, ptc.FunctionalTestCase):
92    """ For functional tests """
93
[2538]94    def afterSetUp(self):
95        super(FunctionalTestCase, self).afterSetUp()
96        self.auth = "%s:%s" % (portal_owner, default_password)
97
Note: See TracBrowser for help on using the repository browser.