diff --git a/product/ERP5/tests/testBusinessTemplate.py b/product/ERP5/tests/testBusinessTemplate.py index 158e841713c0755a269279742c09ac16f37ae329..d9df75935736da7999e62b9d796e9cd614717337 100644 --- a/product/ERP5/tests/testBusinessTemplate.py +++ b/product/ERP5/tests/testBusinessTemplate.py @@ -5515,60 +5515,6 @@ class TestBusinessTemplate(BusinessTemplateMixin): sequence_list.addSequenceString(sequence_string) sequence_list.play(self) - def test_getInstalledBusinessTemplate(self): - self.assertNotEquals(None, self.getPortal()\ - .portal_templates.getInstalledBusinessTemplate('erp5_core')) - - def test_getInstalledBusinessTemplateList(self): - templates_tool = self.getPortal().portal_templates - bt5_list = templates_tool.getInstalledBusinessTemplateList() - another_bt_list = [ i for i in templates_tool.contentValues() \ - if i.getInstallationState() == 'installed'] - self.assertEquals(len(bt5_list), len(another_bt_list)) - for bt in bt5_list: - self.failUnless(bt in another_bt_list) - - self.assertEquals(bt5_list, - templates_tool._getInstalledBusinessTemplateList()) - - def test_getInstalledBusinessTemplateTitleList(self): - templates_tool = self.getPortal().portal_templates - bt5_list = templates_tool.getInstalledBusinessTemplateTitleList() - another_bt_list = [ i.getTitle() for i in templates_tool.contentValues() \ - if i.getInstallationState() == 'installed'] - bt5_list.sort() - another_bt_list.sort() - self.assertEquals(bt5_list, another_bt_list) - for bt in bt5_list: - self.failUnless(bt in another_bt_list) - - new_list = templates_tool._getInstalledBusinessTemplateList(only_title=1) - new_list.sort() - self.assertEquals(bt5_list, new_list) - - def test_CompareVersions(self): - """Tests compare version on template tool. """ - compareVersions = self.getPortal().portal_templates.compareVersions - self.assertEquals(0, compareVersions('1', '1')) - self.assertEquals(0, compareVersions('1.2', '1.2')) - self.assertEquals(0, compareVersions('1.2rc3', '1.2rc3')) - self.assertEquals(0, compareVersions('1.0.0', '1.0')) - - self.assertEquals(-1, compareVersions('1.0', '1.0.1')) - self.assertEquals(-1, compareVersions('1.0rc1', '1.0')) - self.assertEquals(-1, compareVersions('1.0a', '1.0.1')) - self.assertEquals(-1, compareVersions('1.1', '2.0')) - - def test_CompareVersionStrings(self): - """Test compareVersionStrings on template tool""" - compareVersionStrings = \ - self.getPortal().portal_templates.compareVersionStrings - self.assertTrue(compareVersionStrings('1.1', '> 1.0')) - self.assertFalse(compareVersionStrings('1.1rc1', '= 1.0')) - self.assertFalse(compareVersionStrings('1.0rc1', '> 1.0')) - self.assertFalse(compareVersionStrings('1.0rc1', '>= 1.0')) - self.assertTrue(compareVersionStrings('1.0rc1', '>= 1.0rc1')) - def test_checkDependencies(self): from Products.ERP5.Document.BusinessTemplate import \ BusinessTemplateMissingDependency @@ -5586,177 +5532,6 @@ class TestBusinessTemplate(BusinessTemplateMixin): bt5.setDependencyList(['not_exists (= 1.0)']) self.assertRaises(BusinessTemplateMissingDependency, bt5.checkDependencies) - def test_download_http(self): - test_web = self.portal.portal_templates.download( - 'http://www.erp5.org/dists/snapshot/test_bt5/test_web.bt5') - self.assertEquals(test_web.getPortalType(), 'Business Template') - self.assertEquals(test_web.getTitle(), 'test_web') - self.assertTrue(test_web.getRevision()) - - def _svn_setup_ssl(self): - """ - Function used to trust in svn.erp5.org. - """ - trust_dict = dict(realm="https://svn.erp5.org:443", - hostname="roundcube.nexedi.com", - issuer_dname="Nexedi SA, Marcq en Baroeul, Nord Pas de Calais, FR", - valid_from="Thu, 22 May 2008 13:43:01 GMT", - valid_until="Sun, 20 May 2018 13:43:01 GMT", - finger_print=\ - "a1:f7:c6:bb:51:69:84:28:ac:58:af:9d:05:73:de:24:45:4d:a1:bb", - failures=8) - getVcsTool("svn").__of__(self.portal).acceptSSLServer(trust_dict) - - def test_download_svn(self): - # if the page looks like a svn repository, template tool will use pysvn to - # get the bt5. - self._svn_setup_ssl() - bt5_url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/test_web' - test_web = self.portal.portal_templates.download(bt5_url) - self.assertEquals(test_web.getPortalType(), 'Business Template') - self.assertEquals(test_web.getTitle(), 'test_web') - self.assertTrue(test_web.getRevision()) - - def test_updateBusinessTemplateFromUrl_simple(self): - """ - Test updateBusinessTemplateFromUrl method - - By default if a new business template has revision >= previous one - the new bt5 is not installed, only imported. - """ - self._svn_setup_ssl() - template_tool = self.portal.portal_templates - old_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') - # change revision to an old revision - old_bt.setRevision(0.0001) - url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/erp5_csv_style' - template_tool.updateBusinessTemplateFromUrl(url) - new_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') - self.assertNotEquals(old_bt, new_bt) - self.assertEquals('erp5_csv_style', new_bt.getTitle()) - - # Test Another time with definning an ID - old_bt = new_bt - old_bt.setRevision(0.0002) - template_tool.updateBusinessTemplateFromUrl(url, id="new_erp5_csv_style") - new_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') - self.assertNotEquals(old_bt, new_bt) - self.assertEquals('erp5_csv_style', new_bt.getTitle()) - self.assertEquals('new_erp5_csv_style', new_bt.getId()) - - # Test if the new instance with same revision is not installed. - old_bt = new_bt - template_tool.updateBusinessTemplateFromUrl(url, id="not_installed_bt5") - new_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') - self.assertEquals(old_bt, new_bt) - self.assertEquals('erp5_csv_style', new_bt.getTitle()) - self.assertEquals('new_erp5_csv_style', new_bt.getId()) - not_installed_bt5 = getattr(template_tool, "not_installed_bt5", None) - self.assertNotEquals(not_installed_bt5, None) - self.assertEquals('erp5_csv_style', not_installed_bt5.getTitle()) - self.assertEquals(not_installed_bt5.getInstallationState(), - "not_installed") - self.assertEquals(not_installed_bt5.getRevision(), new_bt.getRevision()) - - def test_updateBusinessTemplateFromUrl_keep_list(self): - """ - Test updateBusinessTemplateFromUrl method - """ - self._svn_setup_ssl() - template_tool = self.portal.portal_templates - url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/test_core' - # don't install test_file - keep_original_list = ( 'portal_skins/erp5_test/test_file', ) - template_tool.updateBusinessTemplateFromUrl(url, - keep_original_list=keep_original_list) - bt = template_tool.getInstalledBusinessTemplate('test_core') - self.assertNotEquals(None, bt) - erp5_test = getattr(self.portal.portal_skins, 'erp5_test', None) - self.assertNotEquals(None, erp5_test) - test_file = getattr(erp5_test, 'test_file', None) - self.assertEquals(None, test_file) - - def test_updateBusinessTemplateFromUrl_after_before_script(self): - """ - Test updateBusinessTemplateFromUrl method - """ - from Products.ERP5Type.tests.utils import createZODBPythonScript - portal = self.getPortal() - self._svn_setup_ssl() - createZODBPythonScript(portal.portal_skins.custom, - 'BT_dummyA', - 'scripts_params=None', - '# Script body\n' - 'return context.setDescription("MODIFIED")') - - createZODBPythonScript(portal.portal_skins.custom, - 'BT_dummyB', - 'scripts_params=None', - '# Script body\n' - 'return context.setChangeLog("MODIFIED")') - - createZODBPythonScript(portal.portal_skins.custom, - 'BT_dummyC', - 'scripts_params=None', - '# Script body\n' - 'return context.getPortalObject().setTitle("MODIFIED")') - - template_tool = self.portal.portal_templates - url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/test_html_style' - # don't install test_file - before_triggered_bt5_id_list = ['BT_dummyA', 'BT_dummyB'] - after_triggered_bt5_id_list = ['BT_dummyC'] - template_tool.updateBusinessTemplateFromUrl(url, - before_triggered_bt5_id_list=before_triggered_bt5_id_list, - after_triggered_bt5_id_list=after_triggered_bt5_id_list) - bt = template_tool.getInstalledBusinessTemplate('test_html_style') - self.assertNotEquals(None, bt) - self.assertEquals(bt.getDescription(), 'MODIFIED') - self.assertEquals(bt.getChangeLog(), 'MODIFIED') - self.assertEquals(portal.getTitle(), 'MODIFIED') - - def test_updateBusinessTemplateFromUrl_stringCastingBug(self): - pt = self.getTemplateTool() - template = pt.newContent(portal_type='Business Template') - self.failUnless(template.getBuildingState() == 'draft') - self.failUnless(template.getInstallationState() == 'not_installed') - title = 'install_casting_to_int_bug_check' - template.edit(title=title, - version='1.0', - description='bt for unit_test') - transaction.commit() - - template.build() - transaction.commit() - - cfg = getConfiguration() - template_path = os.path.join(cfg.instancehome, 'tests', '%s' % (title,)) - # remove previous version of bt it exists - if os.path.exists(template_path): - shutil.rmtree(template_path) - template.export(path=template_path, local=1) - self.failUnless(os.path.exists(template_path)) - - # setup version '9' - first_revision = '9' - open(os.path.join(template_path, 'bt', 'revision'), 'w').write(first_revision) - pt.updateBusinessTemplateFromUrl(template_path) - new_bt = pt.getInstalledBusinessTemplate(title) - - self.assertEqual(new_bt.getRevision(), first_revision) - - # setup revision '11', becasue: '11' < '9' (string comp), but 11 > 9 (int comp) - second_revision = '11' - self.assertTrue(second_revision < first_revision) - self.assertTrue(int(second_revision) > int(first_revision)) - - open(os.path.join(template_path, 'bt', 'revision'), 'w').write(second_revision) - pt.updateBusinessTemplateFromUrl(template_path) - newer_bt = pt.getInstalledBusinessTemplate(title) - - self.assertNotEqual(new_bt, newer_bt) - self.assertEqual(newer_bt.getRevision(), second_revision) - def test_34_RemovePartialWorkflowChain(self): """Test Remove Chain""" sequence_list = SequenceList() @@ -6434,43 +6209,6 @@ class TestBusinessTemplate(BusinessTemplateMixin): # check both File instances no longer behave like being overriden self.assertFalse(getattr(portal.another_file, 'isClassOverriden', False)) - def test_getBusinessTemplateUrl(self): - """ Test if this method can find which repository is the business - template - """ - # How to define an existing and use INSTANCE_HOME_REPOSITORY? - url_list = [ 'https://svn.erp5.org/repos/public/erp5/trunk/bt5', - 'http://www.erp5.org/dists/snapshot/bt5', - 'http://www.erp5.org/dists/release/5.4.5/bt5', - "INSTANCE_HOME_REPOSITORY", - 'file:///opt/does/not/exist'] - - exist_bt5 = 'erp5_base' - not_exist_bt5 = "erp5_not_exist" - template_tool = self.portal.portal_templates - getBusinessTemplateUrl = template_tool.getBusinessTemplateUrl - - # Test Exists - self.assertEquals(getBusinessTemplateUrl(url_list, exist_bt5), - 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/erp5_base') - self.assertEquals(getBusinessTemplateUrl(url_list[1:], exist_bt5), - 'http://www.erp5.org/dists/snapshot/bt5/erp5_base.bt5') - self.assertEquals(getBusinessTemplateUrl(url_list[2:], exist_bt5), - 'http://www.erp5.org/dists/release/5.4.5/bt5/erp5_base.bt5') - INSTANCE_HOME = getConfiguration().instancehome - local_bt = None - if os.path.exists(INSTANCE_HOME + "/bt5/erp5_base"): - local_bt = 'file://' + INSTANCE_HOME + "/bt5/erp5_base" - self.assertEquals(getBusinessTemplateUrl(url_list[3:], exist_bt5), local_bt) - self.assertEquals(getBusinessTemplateUrl(url_list[4:], exist_bt5), None) - - # Test Not exists - self.assertEquals(getBusinessTemplateUrl(url_list, not_exist_bt5), None) - self.assertEquals(getBusinessTemplateUrl(url_list[1:], not_exist_bt5), None) - self.assertEquals(getBusinessTemplateUrl(url_list[2:], not_exist_bt5), None) - self.assertEquals(getBusinessTemplateUrl(url_list[3:], not_exist_bt5), None) - self.assertEquals(getBusinessTemplateUrl(url_list[4:], not_exist_bt5), None) - def test_type_provider(self): self.portal.newContent(id='dummy_type_provider', portal_type="Types Tool") type_provider = self.portal.dummy_type_provider diff --git a/product/ERP5/tests/testTemplateTool.py b/product/ERP5/tests/testTemplateTool.py index 2f4b272c2484d67e612fa431886832e73546c8e7..0e9cd85c995469d15fab9d262c9a1563ec690046 100644 --- a/product/ERP5/tests/testTemplateTool.py +++ b/product/ERP5/tests/testTemplateTool.py @@ -27,7 +27,15 @@ # ############################################################################## +import os +import shutil import unittest +import transaction +from App.config import getConfiguration +from Products.ERP5VCS.WorkingCopy import getVcsTool + +from Products.ERP5.Document.BusinessTemplate import \ + BusinessTemplateMissingDependency from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase @@ -39,13 +47,16 @@ class TestTemplateTool(ERP5TypeTestCase): quiet = 1 def getBusinessTemplateList(self): - return ('erp5_base', ) + return ('erp5_base', 'erp5_csv_style') def getTitle(self): return "Template Tool" def afterSetUp(self): self.templates_tool = self.portal.portal_templates + self.templates_tool.updateRepositoryBusinessTemplateList(\ + ["http://www.erp5.org/dists/snapshot/bt5/",]) + def testUpdateBT5FromRepository(self, quiet=quiet, run=run_all_test): """ Test the list of bt5 returned for upgrade """ @@ -54,8 +65,6 @@ class TestTemplateTool(ERP5TypeTestCase): self.assertEquals(len(bt_list), 1) erp5_base = bt_list[0].getObject() erp5_base.edit(revision=int(erp5_base.getRevision()) - 10) - self.templates_tool.updateRepositoryBusinessTemplateList(\ - ["http://www.erp5.org/dists/snapshot/bt5/",]) updatable_bt_list = self.templates_tool.getRepositoryBusinessTemplateList(update_only=True) self.assertEqual( @@ -67,7 +76,271 @@ class TestTemplateTool(ERP5TypeTestCase): [i.title for i in updatable_bt_list if i.title == "erp5_base"], []) + def test_download_http(self): + test_web = self.portal.portal_templates.download( + 'http://www.erp5.org/dists/snapshot/test_bt5/test_web.bt5') + self.assertEquals(test_web.getPortalType(), 'Business Template') + self.assertEquals(test_web.getTitle(), 'test_web') + self.assertTrue(test_web.getRevision()) + + def _svn_setup_ssl(self): + """ + Function used to trust in svn.erp5.org. + """ + trust_dict = dict(realm="https://svn.erp5.org:443", + hostname="roundcube.nexedi.com", + issuer_dname="Nexedi SA, Marcq en Baroeul, Nord Pas de Calais, FR", + valid_from="Thu, 22 May 2008 13:43:01 GMT", + valid_until="Sun, 20 May 2018 13:43:01 GMT", + finger_print=\ + "a1:f7:c6:bb:51:69:84:28:ac:58:af:9d:05:73:de:24:45:4d:a1:bb", + failures=8) + getVcsTool("svn").__of__(self.portal).acceptSSLServer(trust_dict) + + def test_download_svn(self): + # if the page looks like a svn repository, template tool will use pysvn to + # get the bt5. + self._svn_setup_ssl() + bt5_url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/test_web' + test_web = self.portal.portal_templates.download(bt5_url) + self.assertEquals(test_web.getPortalType(), 'Business Template') + self.assertEquals(test_web.getTitle(), 'test_web') + self.assertTrue(test_web.getRevision()) + + def test_updateBusinessTemplateFromUrl_simple(self): + """ + Test updateBusinessTemplateFromUrl method + + By default if a new business template has revision >= previous one + the new bt5 is not installed, only imported. + """ + self._svn_setup_ssl() + template_tool = self.portal.portal_templates + old_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') + # change revision to an old revision + old_bt.setRevision(0.0001) + url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/erp5_csv_style' + template_tool.updateBusinessTemplateFromUrl(url) + new_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') + self.assertNotEquals(old_bt, new_bt) + self.assertEquals('erp5_csv_style', new_bt.getTitle()) + + # Test Another time with definning an ID + old_bt = new_bt + old_bt.setRevision(0.0002) + template_tool.updateBusinessTemplateFromUrl(url, id="new_erp5_csv_style") + new_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') + self.assertNotEquals(old_bt, new_bt) + self.assertEquals('erp5_csv_style', new_bt.getTitle()) + self.assertEquals('new_erp5_csv_style', new_bt.getId()) + + # Test if the new instance with same revision is not installed. + old_bt = new_bt + template_tool.updateBusinessTemplateFromUrl(url, id="not_installed_bt5") + new_bt = template_tool.getInstalledBusinessTemplate('erp5_csv_style') + self.assertEquals(old_bt, new_bt) + self.assertEquals('erp5_csv_style', new_bt.getTitle()) + self.assertEquals('new_erp5_csv_style', new_bt.getId()) + not_installed_bt5 = getattr(template_tool, "not_installed_bt5", None) + self.assertNotEquals(not_installed_bt5, None) + self.assertEquals('erp5_csv_style', not_installed_bt5.getTitle()) + self.assertEquals(not_installed_bt5.getInstallationState(), + "not_installed") + self.assertEquals(not_installed_bt5.getRevision(), new_bt.getRevision()) + + def test_updateBusinessTemplateFromUrl_keep_list(self): + """ + Test updateBusinessTemplateFromUrl method + """ + self._svn_setup_ssl() + template_tool = self.portal.portal_templates + url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/test_core' + # don't install test_file + keep_original_list = ( 'portal_skins/erp5_test/test_file', ) + template_tool.updateBusinessTemplateFromUrl(url, + keep_original_list=keep_original_list) + bt = template_tool.getInstalledBusinessTemplate('test_core') + self.assertNotEquals(None, bt) + erp5_test = getattr(self.portal.portal_skins, 'erp5_test', None) + self.assertNotEquals(None, erp5_test) + test_file = getattr(erp5_test, 'test_file', None) + self.assertEquals(None, test_file) + + def test_updateBusinessTemplateFromUrl_after_before_script(self): + """ + Test updateBusinessTemplateFromUrl method + """ + from Products.ERP5Type.tests.utils import createZODBPythonScript + portal = self.getPortal() + self._svn_setup_ssl() + createZODBPythonScript(portal.portal_skins.custom, + 'BT_dummyA', + 'scripts_params=None', + '# Script body\n' + 'return context.setDescription("MODIFIED")') + + createZODBPythonScript(portal.portal_skins.custom, + 'BT_dummyB', + 'scripts_params=None', + '# Script body\n' + 'return context.setChangeLog("MODIFIED")') + + createZODBPythonScript(portal.portal_skins.custom, + 'BT_dummyC', + 'scripts_params=None', + '# Script body\n' + 'return context.getPortalObject().setTitle("MODIFIED")') + + template_tool = self.portal.portal_templates + url = 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/test_html_style' + # don't install test_file + before_triggered_bt5_id_list = ['BT_dummyA', 'BT_dummyB'] + after_triggered_bt5_id_list = ['BT_dummyC'] + template_tool.updateBusinessTemplateFromUrl(url, + before_triggered_bt5_id_list=before_triggered_bt5_id_list, + after_triggered_bt5_id_list=after_triggered_bt5_id_list) + bt = template_tool.getInstalledBusinessTemplate('test_html_style') + self.assertNotEquals(None, bt) + self.assertEquals(bt.getDescription(), 'MODIFIED') + self.assertEquals(bt.getChangeLog(), 'MODIFIED') + self.assertEquals(portal.getTitle(), 'MODIFIED') + + def test_updateBusinessTemplateFromUrl_stringCastingBug(self): + pt = self.getTemplateTool() + template = pt.newContent(portal_type='Business Template') + self.failUnless(template.getBuildingState() == 'draft') + self.failUnless(template.getInstallationState() == 'not_installed') + title = 'install_casting_to_int_bug_check' + template.edit(title=title, + version='1.0', + description='bt for unit_test') + transaction.commit() + + template.build() + transaction.commit() + + cfg = getConfiguration() + template_path = os.path.join(cfg.instancehome, 'tests', '%s' % (title,)) + # remove previous version of bt it exists + if os.path.exists(template_path): + shutil.rmtree(template_path) + template.export(path=template_path, local=1) + self.failUnless(os.path.exists(template_path)) + + # setup version '9' + first_revision = '9' + open(os.path.join(template_path, 'bt', 'revision'), 'w').write(first_revision) + pt.updateBusinessTemplateFromUrl(template_path) + new_bt = pt.getInstalledBusinessTemplate(title) + + self.assertEqual(new_bt.getRevision(), first_revision) + + # setup revision '11', becasue: '11' < '9' (string comp), but 11 > 9 (int comp) + second_revision = '11' + self.assertTrue(second_revision < first_revision) + self.assertTrue(int(second_revision) > int(first_revision)) + + open(os.path.join(template_path, 'bt', 'revision'), 'w').write(second_revision) + pt.updateBusinessTemplateFromUrl(template_path) + newer_bt = pt.getInstalledBusinessTemplate(title) + + self.assertNotEqual(new_bt, newer_bt) + self.assertEqual(newer_bt.getRevision(), second_revision) + + def test_CompareVersions(self): + """Tests compare version on template tool. """ + compareVersions = self.getPortal().portal_templates.compareVersions + self.assertEquals(0, compareVersions('1', '1')) + self.assertEquals(0, compareVersions('1.2', '1.2')) + self.assertEquals(0, compareVersions('1.2rc3', '1.2rc3')) + self.assertEquals(0, compareVersions('1.0.0', '1.0')) + + self.assertEquals(-1, compareVersions('1.0', '1.0.1')) + self.assertEquals(-1, compareVersions('1.0rc1', '1.0')) + self.assertEquals(-1, compareVersions('1.0a', '1.0.1')) + self.assertEquals(-1, compareVersions('1.1', '2.0')) + + def test_CompareVersionStrings(self): + """Test compareVersionStrings on template tool""" + compareVersionStrings = \ + self.getPortal().portal_templates.compareVersionStrings + self.assertTrue(compareVersionStrings('1.1', '> 1.0')) + self.assertFalse(compareVersionStrings('1.1rc1', '= 1.0')) + self.assertFalse(compareVersionStrings('1.0rc1', '> 1.0')) + self.assertFalse(compareVersionStrings('1.0rc1', '>= 1.0')) + self.assertTrue(compareVersionStrings('1.0rc1', '>= 1.0rc1')) + + def test_getInstalledBusinessTemplate(self): + self.assertNotEquals(None, self.getPortal()\ + .portal_templates.getInstalledBusinessTemplate('erp5_core')) + + def test_getInstalledBusinessTemplateRevision(self): + self.assertTrue(300 < self.getPortal()\ + .portal_templates.getInstalledBusinessTemplateRevision('erp5_core')) + + def test_getInstalledBusinessTemplateList(self): + templates_tool = self.getPortal().portal_templates + bt5_list = templates_tool.getInstalledBusinessTemplateList() + another_bt_list = [ i for i in templates_tool.contentValues() \ + if i.getInstallationState() == 'installed'] + self.assertEquals(len(bt5_list), len(another_bt_list)) + for bt in bt5_list: + self.failUnless(bt in another_bt_list) + + self.assertEquals(bt5_list, + templates_tool._getInstalledBusinessTemplateList()) + + def test_getInstalledBusinessTemplateTitleList(self): + templates_tool = self.getPortal().portal_templates + bt5_list = templates_tool.getInstalledBusinessTemplateTitleList() + another_bt_list = [ i.getTitle() for i in templates_tool.contentValues() \ + if i.getInstallationState() == 'installed'] + bt5_list.sort() + another_bt_list.sort() + self.assertEquals(bt5_list, another_bt_list) + for bt in bt5_list: + self.failUnless(bt in another_bt_list) + + new_list = templates_tool._getInstalledBusinessTemplateList(only_title=1) + new_list.sort() + self.assertEquals(bt5_list, new_list) + + def test_getBusinessTemplateUrl(self): + """ Test if this method can find which repository is the business + template + """ + # How to define an existing and use INSTANCE_HOME_REPOSITORY? + url_list = [ 'https://svn.erp5.org/repos/public/erp5/trunk/bt5', + 'http://www.erp5.org/dists/snapshot/bt5', + 'http://www.erp5.org/dists/release/5.4.5/bt5', + "INSTANCE_HOME_REPOSITORY", + 'file:///opt/does/not/exist'] + + exist_bt5 = 'erp5_base' + not_exist_bt5 = "erp5_not_exist" + template_tool = self.portal.portal_templates + getBusinessTemplateUrl = template_tool.getBusinessTemplateUrl + + # Test Exists + self.assertEquals(getBusinessTemplateUrl(url_list, exist_bt5), + 'https://svn.erp5.org/repos/public/erp5/trunk/bt5/erp5_base') + self.assertEquals(getBusinessTemplateUrl(url_list[1:], exist_bt5), + 'http://www.erp5.org/dists/snapshot/bt5/erp5_base.bt5') + self.assertEquals(getBusinessTemplateUrl(url_list[2:], exist_bt5), + 'http://www.erp5.org/dists/release/5.4.5/bt5/erp5_base.bt5') + INSTANCE_HOME = getConfiguration().instancehome + local_bt = None + if os.path.exists(INSTANCE_HOME + "/bt5/erp5_base"): + local_bt = 'file://' + INSTANCE_HOME + "/bt5/erp5_base" + self.assertEquals(getBusinessTemplateUrl(url_list[3:], exist_bt5), local_bt) + self.assertEquals(getBusinessTemplateUrl(url_list[4:], exist_bt5), None) + # Test Not exists + self.assertEquals(getBusinessTemplateUrl(url_list, not_exist_bt5), None) + self.assertEquals(getBusinessTemplateUrl(url_list[1:], not_exist_bt5), None) + self.assertEquals(getBusinessTemplateUrl(url_list[2:], not_exist_bt5), None) + self.assertEquals(getBusinessTemplateUrl(url_list[3:], not_exist_bt5), None) + self.assertEquals(getBusinessTemplateUrl(url_list[4:], not_exist_bt5), None) def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TestTemplateTool))