diff --git a/product/ERP5/tests/testBusinessTemplate.py b/product/ERP5/tests/testBusinessTemplate.py index 33d7afc3d1300e49dc349fef564a363fe08a7595..a295edc252088dad723426c62e6de1bbe086588e 100644 --- a/product/ERP5/tests/testBusinessTemplate.py +++ b/product/ERP5/tests/testBusinessTemplate.py @@ -5825,6 +5825,48 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): 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 stepCreateCustomWorkflow(self, sequence=None, sequence_list=None, **kw): """ Create a custom workflow