From 98f92d7f50def2c24d9084e496e43d4ed8484d48 Mon Sep 17 00:00:00 2001 From: Nicolas Delaby <nicolas@nexedi.com> Date: Wed, 17 Mar 2010 17:48:05 +0000 Subject: [PATCH] Extend renstallation test Check that Scripts added in working copy are deleted after reintallation of BT - create ZODB Python Script inside folder added by Business Template - Reinstall Business Template - Check that script is removed git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@33816 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/tests/testBusinessTemplate.py | 51 +++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/product/ERP5/tests/testBusinessTemplate.py b/product/ERP5/tests/testBusinessTemplate.py index 269b620f44..18e79cd601 100644 --- a/product/ERP5/tests/testBusinessTemplate.py +++ b/product/ERP5/tests/testBusinessTemplate.py @@ -47,6 +47,8 @@ from Products.ERP5Type.Workflow import addWorkflowByType import shutil import os import gc +import random +import string from MethodObject import Method from Persistence import Persistent @@ -2419,10 +2421,15 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): Install importzed business template """ import_bt = sequence.get('current_bt') + import_bt.reinstall() + + def stepCheckBeforeReinstall(self, sequence=None, sequence_list=None, **kw): + """ + """ + import_bt = sequence.get('current_bt') diff_list = import_bt.BusinessTemplate_getModifiedObject() self.assertTrue('portal_types/Geek Object/become_geek' in [line.object_id for line in diff_list]) - import_bt.reinstall() def stepInstallCurrentBusinessTemplate(self, sequence=None, sequence_list=None, **kw): """ @@ -5664,6 +5671,36 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): sequence_list.addSequenceString(sequence_string) sequence_list.play(self, quiet=quiet) + def stepCreateFakeZODBScript(self, sequence=None, sequence_list=None, **kw): + """Create a Script inside portal_skins + """ + grain_of_sand = ''.join([random.choice(string.ascii_letters) for i in xrange(10)]) + python_script_id = 'ERP5Site_dummyScriptWhichRandomId%s' % grain_of_sand + skin_folder_id = 'custom' + if getattr(self.portal.portal_skins, skin_folder_id, None) is None: + self.portal.portal_skins.manage_addProduct['OFSP'].manage_addFolder(skin_folder_id) + skin_folder = self.portal.portal_skins[skin_folder_id] + skin_folder.manage_addProduct['PythonScripts'].manage_addPythonScript( + id=python_script_id) + sequence.set('python_script_id', python_script_id) + sequence.set('skin_folder_id', skin_folder_id) + + def stepAddSkinFolderToBusinessTemplate(self, sequence=None, sequence_list=None, **kw): + """ + Add types to business template + """ + bt = sequence.get('current_bt', None) + self.failUnless(bt is not None) + bt.edit(template_skin_id_list=('custom')) + + def stepCheckFakeScriptIsDeleted(self, sequence=None, sequence_list=None, **kw): + """Check that script inside ZODB is deleted by BT reinstallation + """ + python_script_id = sequence.get('python_script_id') + skin_folder_id = sequence.get('skin_folder_id') + folder = self.portal.portal_skins[skin_folder_id] + self.assertTrue(python_script_id not in folder.objectIds()) + def test_38_CheckReinstallation(self, quiet=quiet, run=run_all_test): if not run: return if not quiet: @@ -5684,7 +5721,19 @@ class TestBusinessTemplate(ERP5TypeTestCase, LogInterceptor): InstallCurrentBusinessTemplate Tic \ Tic \ RemoveFirstAction \ + CheckBeforeReinstall \ ReinstallBusinessTemplate Tic \ + \ + CreateNewBusinessTemplate \ + UseExportBusinessTemplate \ + AddSkinFolderToBusinessTemplate \ + BuildBusinessTemplate \ + SaveBusinessTemplate \ + InstallCurrentBusinessTemplate Tic \ + CreateFakeZODBScript \ + ReinstallBusinessTemplate \ + Tic \ + CheckFakeScriptIsDeleted \ ' sequence_list.addSequenceString(sequence_string) sequence_list.play(self, quiet=quiet) -- 2.30.9