import re from base import * GENERATOR = re.compile('.*()', re.S|re.M) DESCRIPTION = re.compile('.*()', re.S|re.M) class InstallMixin: def prepare(self): # Preparation for functional testing self.loginAsPortalOwner() self.my_doc = self.portal.invokeFactory('Document', id='my_doc') self.my_doc = self.portal['my_doc'] self.my_doc.update(description="Document description") self.portal.portal_workflow.doActionFor(self.my_doc, 'publish') self.logout() # Get document without customized canonical url self.abs_path = "/%s" % self.my_doc.absolute_url(1) self.html = self.publish(self.abs_path).getBody() class TestTagsDuplicationInstalled(InstallMixin, FunctionalTestCase): def afterSetUp(self): self.prepare() def test_GeneratorMetaSEOInstalled(self): lengen = len(GENERATOR.findall(self.html)) self.assert_(lengen==1, "There is %d generator meta tag(s) " \ "when seoptimizer installed" % lengen) def test_DescriptionMetaSEOInstalled(self): lendesc = len(DESCRIPTION.findall(self.html)) self.assert_(lendesc==1, "There is %d DESCRIPTION meta tag(s) " \ "when seoptimizer installed" % lendesc) class TestTagsDuplicationNotInstalled(InstallMixin, FunctionalTestCaseNotInstalled): def afterSetUp(self): self.prepare() def test_GeneratorMetaSEOUninstalled(self): lengen = len(GENERATOR.findall(self.html)) self.assert_(lengen<=1, "There is %d generator meta tag(s) " \ "when seoptimizer uninstalled" % lengen) def test_DescriptionMetaSEOUninstalled(self): lendesc = len(DESCRIPTION.findall(self.html)) self.assert_(lendesc==1, "There is %d DESCRIPTION meta tag(s) " \ "when seoptimizer uninstalled" % lendesc) def test_suite(): from unittest import TestSuite, makeSuite suite = TestSuite() suite.addTest(makeSuite(TestTagsDuplicationInstalled)) suite.addTest(makeSuite(TestTagsDuplicationNotInstalled)) return suite