Changeset 3152 in products for quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testNewsSitemaps.py
- Timestamp:
- Apr 20, 2011 8:20:36 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
quintagroup.plonegooglesitemaps/trunk/quintagroup/plonegooglesitemaps/tests/testNewsSitemaps.py
r2841 r3152 16 16 from Products.ATContentTypes.content.newsitem import ATNewsItem 17 17 18 18 19 class TestNewsSitemapsXML(FunctionalTestCase): 19 20 … … 25 26 self.portal["news-sitemaps"].at_post_create_script() 26 27 # Add testing news item to portal 27 self.pubdate = (DateTime()+1).strftime("%Y-%m-%d") 28 self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 29 self.my_news.edit(text="Test news item", title="First news (test)", language="ua", 30 effectiveDate=self.pubdate, gsm_access="Registration", 31 gsm_genres=("PressRelease",), gsm_stock="NASDAQ:AMAT, BOM:500325") 28 self.pubdate = (DateTime() + 1).strftime("%Y-%m-%d") 29 self.my_news = _createObjectByType('News Item', self.portal, 30 id='my_news') 31 self.my_news.edit(text="Test news item", 32 title="First news (test)", 33 language="ua", 34 effectiveDate=self.pubdate, 35 gsm_access="Registration", 36 gsm_genres=("PressRelease",), 37 gsm_stock="NASDAQ:AMAT, BOM:500325") 32 38 self.workflow.doActionFor(self.my_news, "publish") 33 39 self.reParse() … … 35 41 def reParse(self): 36 42 # Parse news sitemap 37 self.sitemap = self.publish("/"+self.portal.absolute_url(1) + "/news-sitemaps", 38 "%s:%s" % (portal_owner, default_password)).getBody() 43 self.sitemap = self.publish("/" + self.portal.absolute_url(1) + \ 44 "/news-sitemaps", 45 "%s:%s" % (portal_owner, 46 default_password)).getBody() 39 47 parsed_sitemap = parse(self.sitemap) 40 48 self.start = parsed_sitemap["start"] … … 44 52 self.assert_("urlset" in self.start.keys()) 45 53 urlset = self.start["urlset"] 46 self.assertEqual(urlset.get("xmlns", ""), "http://www.sitemaps.org/schemas/sitemap/0.9") 47 self.assertEqual(urlset.get("xmlns:n", ""), "http://www.google.com/schemas/sitemap-news/0.9") 54 self.assertEqual(urlset.get("xmlns", ""), 55 "http://www.sitemaps.org/schemas/sitemap/0.9") 56 self.assertEqual(urlset.get("xmlns:n", ""), 57 "http://www.google.com/schemas/sitemap-news/0.9") 48 58 49 59 def test_url(self): … … 56 66 def test_nnews(self): 57 67 self.assert_("n:news" in self.start.keys()) 58 68 59 69 def test_npublication(self): 60 70 self.assert_("n:publication" in self.start.keys()) … … 67 77 self.assert_("n:publication_date" in self.start.keys()) 68 78 self.assert_(self.pubdate in self.data, "No %s in data" % self.pubdate) 69 79 70 80 def test_ntitle(self): 71 81 self.assert_("n:title" in self.start.keys()) 72 self.assert_("First news (test)" in self.data, "No 'First news (test)' in data") 82 self.assert_("First news (test)" in self.data, 83 "No 'First news (test)' in data") 73 84 74 85 def test_naccess(self): … … 88 99 self.reParse() 89 100 self.assert_("n:genres" in self.start.keys()) 90 self.assert_("PressRelease, Blog" in self.data, "No 'PressRelease, Blog' in data") 101 self.assert_("PressRelease, Blog" in self.data, 102 "No 'PressRelease, Blog' in data") 91 103 92 104 def test_ngenresEmpty(self): … … 109 121 # Test n:stock_tickers 110 122 self.assert_("n:stock_tickers" in self.start.keys()) 111 self.assert_("NASDAQ:AMAT, BOM:500325" in self.data, "No 'NASDAQ:AMAT, BOM:500325' in data") 123 self.assert_("NASDAQ:AMAT, BOM:500325" in self.data, 124 "No 'NASDAQ:AMAT, BOM:500325' in data") 112 125 113 126 … … 116 129 def afterSetUp(self): 117 130 super(TestNewsSitemapsXMLDefaultObject, self).afterSetUp() 118 # Create news sitemaps 131 # Create news sitemaps 119 132 _createObjectByType("Sitemap", self.portal, id="news-sitemaps", 120 133 sitemapType="news", portalTypes=("News Item",)) 121 134 self.portal["news-sitemaps"].at_post_create_script() 122 135 # Add minimal testing news item to portal 123 self.pubdate = (DateTime()+1).strftime("%Y-%m-%d") 124 self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 136 self.pubdate = (DateTime() + 1).strftime("%Y-%m-%d") 137 self.my_news = _createObjectByType('News Item', self.portal, 138 id='my_news') 125 139 self.my_news.edit(effectiveDate=self.pubdate) 126 140 self.workflow.doActionFor(self.my_news, "publish") … … 129 143 def reParse(self): 130 144 # Parse news sitemap 131 self.sitemap = self.publish("/"+self.portal.absolute_url(1) + "/news-sitemaps", 132 "%s:%s" % (portal_owner, default_password)).getBody() 145 self.sitemap = self.publish("/" + self.portal.absolute_url(1) + \ 146 "/news-sitemaps", 147 "%s:%s" % (portal_owner, default_password) 148 ).getBody() 133 149 parsed_sitemap = parse(self.sitemap) 134 150 self.start = parsed_sitemap["start"] … … 137 153 def test_nnews(self): 138 154 self.assert_("n:news" in self.start.keys()) 139 155 140 156 def test_npublication(self): 141 157 self.assert_("n:publication" in self.start.keys()) … … 148 164 self.assert_("n:publication_date" in self.start.keys()) 149 165 self.assert_(self.pubdate in self.data, "No %s in data" % self.pubdate) 150 166 151 167 def test_ntitle(self): 152 168 self.assert_("n:title" in self.start.keys()) … … 171 187 super(TestSchemaExtending, self).afterSetUp() 172 188 self.my_doc = _createObjectByType('Document', self.portal, id='my_doc') 173 self.my_news = _createObjectByType('News Item', self.portal, id='my_news') 189 self.my_news = _createObjectByType('News Item', self.portal, 190 id='my_news') 174 191 175 192 def testExtendNewsItemByDefault(self): … … 181 198 self.assertEqual(self.my_doc.getField("gsm_genres"), None) 182 199 self.assertEqual(self.my_doc.getField("gsm_stock"), None) 183 200 184 201 def testRegistrationOnLocalSM(self): 185 202 """SchemaExtender adapters must be registered … … 193 210 self.assertNotEqual(localsm.queryAdapter( 194 211 self.my_news, ISchemaExtender, 195 name="quintagroup.plonegooglesitemaps.newssitemapextender"), None) 212 name="quintagroup.plonegooglesitemaps.newssitemapextender"), 213 None) 196 214 self.assertEqual(globalsm.queryAdapter( 197 215 self.my_news, ISchemaExtender, 198 name="quintagroup.plonegooglesitemaps.newssitemapextender"), None) 216 name="quintagroup.plonegooglesitemaps.newssitemapextender"), 217 None) 199 218 200 219 … … 206 225 class ITestTaggable(Interface): 207 226 """Taggable content 208 """ 227 228 """ 229 209 230 210 231 class ExtendableStringField(ExtensionField, StringField): 211 232 """An extendable string field.""" 233 212 234 213 235 class TestExtender(object): … … 219 241 220 242 def getFields(self): 221 return [ExtendableStringField("testField",), ]243 return [ExtendableStringField("testField",), ] 222 244 223 245 from quintagroup.plonegooglesitemaps.interfaces import INewsSitemapProvider 246 247 224 248 class TestNotOverrideExistingSchemaExtender(TestCase): 225 249 """ Test if another schemaextender has been defined for the … … 227 251 """ 228 252 def prepareContent(self): 229 253 230 254 classImplements(ATNewsItem, ITestTaggable) 231 provideAdapter(TestExtender, name=u"archetypes.schemaextender.test.adapter") 255 provideAdapter(TestExtender, 256 name=u"archetypes.schemaextender.test.adapter") 232 257 233 258 self.portal.invokeFactory('News Item', 'taggable-news') … … 239 264 self.assert_(INewsSitemapProvider.providedBy(self.taggable_news)) 240 265 schema = self.taggable_news.Schema().keys() 241 self.assert_("gsm_access" in schema, "no 'gsm_access' in schema: %s" % schema) 242 self.assert_("testField" in schema, "no 'testField' in schema: %s" % schema) 243 266 self.assert_("gsm_access" in schema, "no 'gsm_access' in schema: %s" \ 267 % schema) 268 self.assert_("testField" in schema, "no 'testField' in schema: %s" \ 269 % schema) 244 270 245 271 246 272 classImplements(TestRequest, IAttributeAnnotatable) 273 247 274 248 275 class TestAdditionalMaps(TestCase): … … 255 282 def afterSetUp(self): 256 283 super(TestAdditionalMaps, self).afterSetUp() 257 # Create news sitemaps 284 # Create news sitemaps 258 285 _createObjectByType("Sitemap", self.portal, id="news-sitemaps", 259 286 sitemapType="news") … … 261 288 request = TestRequest() 262 289 alsoProvides(request, IGoogleSitemapsLayer) 263 self.nsmv = queryMultiAdapter((context, request), name="news-sitemap.xml") 290 self.nsmv = queryMultiAdapter((context, request), 291 name="news-sitemap.xml") 264 292 265 293 self.brain = self.portal.portal_catalog(portal_type="Document")[0] 266 294 for k in self.mv_keys: 267 295 self.brain[k] = MV 268 296 269 297 def testAdditionalMaps(self): 270 for n, func in self.nsmv.additional_maps:298 for n, func in self.nsmv.additional_maps: 271 299 try: 272 300 v = func(self.brain) 273 301 except Exception, e: 274 self.fail("Wrong processing 'Missing' value for '%s': %s" 302 self.fail("Wrong processing 'Missing' value for '%s': %s" \ 275 303 % (n, str(e))) 276 277 304 305 278 306 def test_suite(): 279 307 from unittest import TestSuite, makeSuite
Note: See TracChangeset
for help on using the changeset viewer.