diff --git a/setup.py b/setup.py index 33697007516cf6895b33008c0850482f22e3b652..6d87dfab35d45e3bd0b0d7a8539ed51c32cb3bdd 100755 --- a/setup.py +++ b/setup.py @@ -66,7 +66,7 @@ setup(name=name, 'onetimeupload = slapos.recipe.onetimeupload:Recipe', 'helloworld = slapos.recipe.helloworld:Recipe', 'generic.cloudooo = slapos.recipe.generic_cloudooo:Recipe', - 'cloudooo.test = slapos.recipe.cloudooo_test:Recipe', + 'cloudooo.test = slapos.recipe.erp5_test:CloudoooRecipe', 'firefox = slapos.recipe.firefox:Recipe', 'fontconfig = slapos.recipe.fontconfig:Recipe', 'java = slapos.recipe.java:Recipe', diff --git a/slapos/recipe/cloudooo_test/__init__.py b/slapos/recipe/cloudooo_test/__init__.py deleted file mode 100644 index 2cb6f6863014f705c83b1037e8f949dc58791bdf..0000000000000000000000000000000000000000 --- a/slapos/recipe/cloudooo_test/__init__.py +++ /dev/null @@ -1,51 +0,0 @@ -############################################################################## -# -# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved. -# -# WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsibility of assessing all potential -# consequences resulting from its eventual inadequacies and bugs -# End users who are looking for a ready-to-use solution with commercial -# guarantees and support are strongly adviced to contract a Free Software -# Service Company -# -# This program is Free Software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 3 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################## -from slapos.recipe.librecipe import GenericBaseRecipe -import urlparse - -class Recipe(GenericBaseRecipe): - def install(self): - path_list = [] - common_dict = dict( - prepend_path=self.options['prepend-path'], - ) - common_list = [ - "--paster_path", self.options['ooo-paster'], - self.options['configuration-file'] - ] - run_unit_test_path = self.createPythonScript(self.options['run-unit-test'], - __name__ + '.test.runUnitTest', [dict( - call_list=[self.options['run-unit-test-binary'], - ] + common_list, **common_dict)]) - - path_list.append(run_unit_test_path) - path_list.append(self.createPythonScript(self.options['run-test-suite'], - __name__ + '.test.runTestSuite', [dict( - call_list=[self.options['run-test-suite-binary'], - ], **common_dict)])) - - return path_list diff --git a/slapos/recipe/cloudooo_test/test.py b/slapos/recipe/cloudooo_test/test.py deleted file mode 100644 index 70baa22f5a42427a24caa9cfd345fcd669e2e1f3..0000000000000000000000000000000000000000 --- a/slapos/recipe/cloudooo_test/test.py +++ /dev/null @@ -1,64 +0,0 @@ -############################################################################## -# -# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved. -# -# WARNING: This program as such is intended to be used by professional -# programmers who take the whole responsibility of assessing all potential -# consequences resulting from its eventual inadequacies and bugs -# End users who are looking for a ready-to-use solution with commercial -# guarantees and support are strongly adviced to contract a Free Software -# Service Company -# -# This program is Free Software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 3 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -############################################################################## -import os -import sys -def runTestSuite(args): - env = os.environ.copy() - d = args[0] - env['PATH'] = ':'.join([d['prepend_path']] + os.environ['PATH'].split(':')) - # Deal with Shebang size limitation - executable_filepath = d['call_list'][0] - file_object = open(executable_filepath, 'r') - line = file_object.readline() - file_object.close() - argument_list = [] - if line[:2] == '#!': - executable_filepath = line[2:].strip() - argument_list.append(executable_filepath) - argument_list.extend(d['call_list']) - argument_list.extend(sys.argv[1:]) - argument_list.append(env) - os.execle(executable_filepath, *argument_list) - -def runUnitTest(args): - env = os.environ.copy() - d = args[0] - env['PATH'] = ':'.join([d['prepend_path']] + os.environ.get('PATH', '').split(':')) - # Deal with Shebang size limitation - executable_filepath = d['call_list'][0] - file_object = open(executable_filepath, 'r') - line = file_object.readline() - file_object.close() - argument_list = [] - if line[:2] == '#!': - executable_filepath = line[2:].strip() - argument_list.append(executable_filepath) - argument_list.extend(d['call_list']) - argument_list.extend(sys.argv[1:]) - argument_list.append(env) - os.execle(executable_filepath, *argument_list) - diff --git a/slapos/recipe/erp5_test/__init__.py b/slapos/recipe/erp5_test/__init__.py index 1aeea2c5c78044b9116786ac04d4aef1e70c63ca..6d9166580bf0a6c7b48ca169099e32bdccd6ba54 100644 --- a/slapos/recipe/erp5_test/__init__.py +++ b/slapos/recipe/erp5_test/__init__.py @@ -27,6 +27,9 @@ from slapos.recipe.librecipe import GenericBaseRecipe import urlparse +# The follow recipes should be unified somehow in order to improve +# code mantainence. + class Recipe(GenericBaseRecipe): def install(self): testinstance = self.options['test-instance-path'] @@ -72,3 +75,26 @@ class Recipe(GenericBaseRecipe): ] + common_list, **common_dict)])) return path_list + +class CloudoooRecipe(GenericBaseRecipe): + def install(self): + path_list = [] + common_dict = dict( + prepend_path=self.options['prepend-path'], + ) + common_list = [ + "--paster_path", self.options['ooo-paster'], + self.options['configuration-file'] + ] + run_unit_test_path = self.createPythonScript(self.options['run-unit-test'], + __name__ + '.test.runUnitTest', [dict( + call_list=[self.options['run-unit-test-binary'], + ] + common_list, **common_dict)]) + + path_list.append(run_unit_test_path) + path_list.append(self.createPythonScript(self.options['run-test-suite'], + __name__ + '.test.runTestSuite', [dict( + call_list=[self.options['run-test-suite-binary'], + ], **common_dict)])) + + return path_list diff --git a/slapos/recipe/erp5_test/test.py b/slapos/recipe/erp5_test/test.py index 249c871c389ca6fd79ebb8fbf01fbc7a12b3c135..d2c93b876a9c7de45d17eda851e29d65be6c1552 100644 --- a/slapos/recipe/erp5_test/test.py +++ b/slapos/recipe/erp5_test/test.py @@ -29,11 +29,16 @@ import sys def runTestSuite(args): env = os.environ.copy() d = args[0] - env['OPENSSL_BINARY'] = d['openssl_binary'] - env['TEST_CA_PATH'] = d['test_ca_path'] - env['PATH'] = ':'.join([d['prepend_path']] + os.environ['PATH'].split(':')) - env['INSTANCE_HOME'] = d['instance_home'] - env['REAL_INSTANCE_HOME'] = d['instance_home'] + if 'openssl_binary' in d: + env['OPENSSL_BINARY'] = d['openssl_binary'] + if 'test_ca_path' in d: + env['TEST_CA_PATH'] = d['test_ca_path'] + if 'prepend_path' in d: + env['PATH'] = ':'.join([d['prepend_path']] + os.environ.get('PATH', '').split(':')) + if 'instance_home' in d: + env['INSTANCE_HOME'] = d['instance_home'] + env['REAL_INSTANCE_HOME'] = d['instance_home'] + # Deal with Shebang size limitation executable_filepath = d['call_list'][0] file_object = open(executable_filepath, 'r') @@ -51,11 +56,15 @@ def runTestSuite(args): def runUnitTest(args): env = os.environ.copy() d = args[0] - env['OPENSSL_BINARY'] = d['openssl_binary'] - env['TEST_CA_PATH'] = d['test_ca_path'] - env['PATH'] = ':'.join([d['prepend_path']] + os.environ.get('PATH', '').split(':')) - env['INSTANCE_HOME'] = d['instance_home'] - env['REAL_INSTANCE_HOME'] = d['instance_home'] + if 'openssl_binary' in d: + env['OPENSSL_BINARY'] = d['openssl_binary'] + if 'test_ca_path' in d: + env['TEST_CA_PATH'] = d['test_ca_path'] + if 'prepend_path' in d: + env['PATH'] = ':'.join([d['prepend_path']] + os.environ.get('PATH', '').split(':')) + if 'instance_home' in d: + env['INSTANCE_HOME'] = d['instance_home'] + env['REAL_INSTANCE_HOME'] = d['instance_home'] # Deal with Shebang size limitation executable_filepath = d['call_list'][0] file_object = open(executable_filepath, 'r')