Changeset 2530 in products


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

#206: reorganize sitemap tests

Location:
quintagroup.plonegooglesitemaps/branches/test_refactoring/quintagroup/plonegooglesitemaps/tests
Files:
2 edited

Legend:

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

    r2527 r2530  
    140140 
    141141 
    142 class TestSettings(FunctionalTestCase): 
    143  
    144     def afterSetUp(self): 
    145         super(TestSettings, self).afterSetUp() 
    146  
    147         self.workflow = self.portal.portal_workflow 
    148         self.gsm_props = self.portal.portal_properties['googlesitemap_properties'] 
    149         self.auth = 'admin:admin' 
    150         self.contentSM = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
    151  
    152         self.sitemapUrl = '/'+self.portal.absolute_url(1) + '/google-sitemaps' 
    153  
    154         self.portal.portal_membership.addMember('admin', 'admin', ('Manager',), []) 
    155  
    156         # Add testing document to portal 
    157         my_doc = self.portal.invokeFactory('Document', id='my_doc') 
    158         self.my_doc = self.portal['my_doc'] 
    159         self.my_doc.edit(text_format='plain', text='hello world') 
    160         self.my_doc_url = self.my_doc.absolute_url() 
    161  
    162     def testMetaTypeToDig(self): 
    163         self.workflow.doActionFor(self.my_doc, 'publish') 
    164         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    165         self.assert_(hasURL(sitemap, self.my_doc_url)) 
    166  
    167         self.contentSM.setPortalTypes([]) 
    168  
    169         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    170         self.assert_(not hasURL(sitemap, self.my_doc_url)) 
    171  
    172         self.contentSM.setPortalTypes(['Document']) 
    173  
    174         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    175         self.assert_(hasURL(sitemap, self.my_doc_url)) 
    176  
    177     def testStates(self): 
    178         self.workflow.doActionFor(self.my_doc, 'publish') 
    179         self.contentSM.setStates(['visible']) 
    180  
    181         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    182         self.assert_(not hasURL(sitemap, self.my_doc_url)) 
    183  
    184         self.contentSM.setStates(['published']) 
    185  
    186         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    187         self.assert_(hasURL(sitemap, self.my_doc_url)) 
    188  
    189     def test_blackout_entries(self): 
    190         self.workflow.doActionFor(self.my_doc, 'publish') 
    191         self.contentSM.setBlackout_list((self.my_doc.getId(),)) 
    192  
    193         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    194         self.assert_(not hasURL(sitemap, self.my_doc_url)) 
    195  
    196         self.contentSM.setBlackout_list([]) 
    197         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    198         self.assert_(hasURL(sitemap, self.my_doc_url)) 
    199  
    200     def test_regexp(self): 
    201         self.workflow.doActionFor(self.my_doc, 'publish') 
    202         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    203         self.assert_(not hasURL(sitemap, self.portal.absolute_url())) 
    204  
    205         regexp = "s/\/%s//"%self.my_doc.getId() 
    206         self.contentSM.setReg_exp([regexp]) 
    207  
    208         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    209         self.assert_(hasURL(sitemap, self.portal.absolute_url())) 
    210  
    211     def test_add_urls(self): 
    212         self.contentSM.setUrls(['http://w1', 'w2', '/w3']) 
    213         w1_url = 'http://w1' 
    214         w2_url = self.portal.absolute_url() + '/w2' 
    215         w3_url = self.portal.getPhysicalRoot().absolute_url() + '/w3' 
    216         sitemap = self.publish(self.sitemapUrl, self.auth).getBody() 
    217  
    218         self.assert_(hasURL(sitemap, w1_url)) 
    219         self.assert_(hasURL(sitemap, w2_url)) 
    220         self.assert_(hasURL(sitemap, w3_url)) 
    221  
    222  
    223 class TestPinging(FunctionalTestCase): 
    224  
    225     def afterSetUp(self): 
    226         super(TestPinging, self).afterSetUp() 
    227  
    228         self.workflow = self.portal.portal_workflow 
    229         self.workflow.setChainForPortalTypes(pt_names=('News Item','Document'), 
    230                                              chain="simple_publication_workflow") 
    231         self.gsm_props = self.portal.portal_properties['googlesitemap_properties'] 
    232         self.auth = 'admin:admin' 
    233         self.portal.portal_membership.addMember('admin', 'admin', ('Manager',), []) 
    234         # Add sitemaps 
    235         self.contentSM = _createObjectByType('Sitemap', self.portal, id='google-sitemaps') 
    236         self.contentSM.setPingTransitions(('simple_publication_workflow#publish',)) 
    237         self.newsSM = _createObjectByType('Sitemap', self.portal, id='news-sitemaps') 
    238         self.newsSM.setPortalTypes(('News Item','Document')) 
    239         self.newsSM.setPingTransitions(('simple_publication_workflow#publish',)) 
    240         self.sitemapUrl = '/'+self.portal.absolute_url(1) + '/google-sitemaps' 
    241         # Add testing document to portal 
    242         my_doc = self.portal.invokeFactory('Document', id='my_doc') 
    243         self.my_doc = self.portal['my_doc'] 
    244         my_news = self.portal.invokeFactory('News Item', id='my_news') 
    245         self.my_news = self.portal['my_news'] 
    246  
    247     def testAutomatePinging(self): 
    248         # 1. Check for pinging both sitemaps 
    249         back_out, myout = sys.stdout, StringIO() 
    250         sys.stdout = myout 
    251         try: 
    252             self.workflow.doActionFor(self.my_doc, 'publish') 
    253             myout.seek(0) 
    254             data = myout.read() 
    255         finally: 
    256             sys.stdout = back_out 
    257  
    258         self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
    259                      "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
    260         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
    261                      "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    262  
    263         # 2. Check for pinging only news-sitemap sitemaps 
    264         back_out, myout = sys.stdout, StringIO() 
    265         sys.stdout = myout 
    266         try: 
    267             self.workflow.doActionFor(self.my_news, 'publish') 
    268             myout.seek(0) 
    269             data = myout.read() 
    270         finally: 
    271             sys.stdout = back_out 
    272  
    273         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
    274                      "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    275         self.assert_(not 'Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
    276                      "Pinged %s on news: '%s'" % (self.contentSM.id, data)) 
    277  
    278     def testPingingWithSetupForm(self): 
    279         # Ping news and content sitemaps 
    280         formUrl = '/'+self.portal.absolute_url(1) + '/prefs_gsm_settings' 
    281         qs = 'smselected:list=%s&smselected:list=%s&form.button.Ping=1&form.submitted=1' % \ 
    282              (self.contentSM.id, self.newsSM.id) 
    283  
    284         back_out, myout = sys.stdout, StringIO() 
    285         sys.stdout = myout 
    286         try: 
    287             response = self.publish("%s?%s" % (formUrl, qs), basic=self.auth) 
    288             myout.seek(0) 
    289             data = myout.read() 
    290         finally: 
    291             sys.stdout = back_out 
    292  
    293         self.assert_('Pinged %s sitemap to Google' % self.contentSM.absolute_url() in data, 
    294                      "Not pinged %s: '%s'" % (self.contentSM.id, data)) 
    295         self.assert_('Pinged %s sitemap to Google' % self.newsSM.absolute_url() in data, 
    296                      "Not pinged %s: '%s'" % (self.newsSM.id, data)) 
    297  
    298  
    299  
    300142def test_suite(): 
    301143    from unittest import TestSuite, makeSuite 
  • 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.