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