1import shutil 2 3from unit.applications.proto import TestApplicationProto 4from unit.option import option 5from unit.utils import public_dir 6 7 8class TestApplicationRuby(TestApplicationProto): 9 application_type = "ruby" 10 11 def prepare_env(self, script): 12 shutil.copytree( 13 option.test_dir + '/ruby/' + script, 14 option.temp_dir + '/ruby/' + script, 15 ) 16 17 public_dir(option.temp_dir + '/ruby/' + script) 18 19 def load(self, script, name='config.ru', **kwargs): 20 self.prepare_env(script) 21 22 script_path = option.temp_dir + '/ruby/' + script 23 24 app = { 25 "type": self.get_application_type(), 26 "processes": {"spare": 0}, 27 "working_directory": script_path, 28 "script": script_path + '/' + name, 29 } 30 31 for key in [ 32 'hooks', 33 ]: 34 if key in kwargs: 35 app[key] = kwargs[key] 36 37 self._load_conf( 38 { 39 "listeners": {"*:7080": {"pass": "applications/" + script}}, 40 "applications": {script: app}, 41 }, 42 **kwargs 43 ) 44