Ignore:
Timestamp:
Jun 14, 2010 7:39:39 PM (14 years ago)
Author:
mylan
Message:

#206: reorganize sitemap tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • quintagroup.plonegooglesitemaps/branches/test_refactoring/quintagroup/plonegooglesitemaps/tests/testSitemaps.py

    r2527 r2530  
    142142 
    143143 
     144class TestPinging(FunctionalTestCase): 
     145 
     146    def afterSetUp(self): 
     147        super(TestPinging, self).afterSetUp() 
     148 
     149        self.workflow = self.portal.portal_workflow 
     150        self.workflow.setChainForPortalTypes(pt_names=('News Item','Document'), 
     151                                             chain="simple_publication_workflow") 
     152        self.gsm_props = self.portal.portal_properties['googlesitemap_properties'] 
     153        self.auth = 'admin:admin' 
     154        self.portal.portal_membership.addMember('admin', 'admin', ('Manager',), []) 
     155        # Add sitemaps 
     156        self.contentSM = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
     157        self.contentSM.setPingTransitions(('simple_publication_workflow#publish',)) 
     158        self.newsSM = _createObjectByType('Sitemap', self.portal, id='news-sitemaps') 
     159        self.newsSM.setPortalTypes(('News Item','Document')) 
     160        self.newsSM.setPingTransitions(('simple_publication_workflow#publish',)) 
     161        self.sitemapUrl = '/'+self.portal.absolute_url(1) + '/google-sitemaps' 
     162        # Add testing document to portal 
     163        my_doc = self.portal.invokeFactory('Document', id='my_doc') 
     164        self.my_doc = self.portal['my_doc'] 
     165        my_news = self.portal.invokeFactory('News Item', id='my_news') 
     166        self.my_news = self.portal['my_news'] 
     167 
     168    def testAutomatePinging(self): 
     169        # 1. Check for pinging both sitemaps 
     170        back_out, myout = sys.stdout, StringIO() 
     171        sys.stdout = myout 
     172        try: 
     173            self.workflow.doActionFor(self.my_doc, 'publish') 
     174            myout.seek(0) 
     175            data = myout.read() 
     176        finally: 
     177            sys.stdout = back_out 
     178 
     179        self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     180                     "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
     181        self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     182                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
     183 
     184        # 2. Check for pinging only news-sitemap sitemaps 
     185        back_out, myout = sys.stdout, StringIO() 
     186        sys.stdout = myout 
     187        try: 
     188            self.workflow.doActionFor(self.my_news, 'publish') 
     189            myout.seek(0) 
     190            data = myout.read() 
     191        finally: 
     192            sys.stdout = back_out 
     193 
     194        self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     195                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
     196        self.assert_(not 'Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     197                     "Pinged %s on news: '%s'" % (self.contentSM.id, data)) 
     198 
     199    def testPingingWithSetupForm(self): 
     200        # Ping news and content sitemaps 
     201        formUrl = '/'+self.portal.absolute_url(1) + '/prefs_gsm_settings' 
     202        qs = 'smselected:list=%s&smselected:list=%s&form.button.Ping=1&form.submitted=1' % \ 
     203             (self.contentSM.id, self.newsSM.id) 
     204 
     205        back_out, myout = sys.stdout, StringIO() 
     206        sys.stdout = myout 
     207        try: 
     208            response = self.publish("%s?%s" % (formUrl, qs), basic=self.auth) 
     209            myout.seek(0) 
     210            data = myout.read() 
     211        finally: 
     212            sys.stdout = back_out 
     213 
     214        self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
     215                     "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
     216        self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
     217                     "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
     218 
     219 
     220 
    144221def test_suite(): 
    145222    from unittest import TestSuite, makeSuite 
     
    147224    suite.addTest(makeSuite(TestSitemapType)) 
    148225    suite.addTest(makeSuite(TestSettings)) 
     226    suite.addTest(makeSuite(TestPinging)) 
    149227    return suite 
    150228 
Note: See TracChangeset for help on using the changeset viewer.