xref: /unit/test/unit/applications/lang/ruby.py (revision 2330:4b1f175f9c88)
11911So.canty@f5.comimport shutil
21911So.canty@f5.com
31019Szelenkov@nginx.comfrom unit.applications.proto import TestApplicationProto
41730Szelenkov@nginx.comfrom unit.option import option
51911So.canty@f5.comfrom unit.utils import public_dir
61019Szelenkov@nginx.com
71019Szelenkov@nginx.com
81019Szelenkov@nginx.comclass TestApplicationRuby(TestApplicationProto):
91116Szelenkov@nginx.com    application_type = "ruby"
101116Szelenkov@nginx.com
111911So.canty@f5.com    def prepare_env(self, script):
121911So.canty@f5.com        shutil.copytree(
13*2330Szelenkov@nginx.com            f'{option.test_dir}/ruby/{script}',
14*2330Szelenkov@nginx.com            f'{option.temp_dir}/ruby/{script}',
151911So.canty@f5.com        )
161911So.canty@f5.com
17*2330Szelenkov@nginx.com        public_dir(f'{option.temp_dir}/ruby/{script}')
181911So.canty@f5.com
191303St.nateldemoura@f5.com    def load(self, script, name='config.ru', **kwargs):
201911So.canty@f5.com        self.prepare_env(script)
211911So.canty@f5.com
22*2330Szelenkov@nginx.com        script_path = f'{option.temp_dir}/ruby/{script}'
231019Szelenkov@nginx.com
241912So.canty@f5.com        app = {
251912So.canty@f5.com            "type": self.get_application_type(),
261912So.canty@f5.com            "processes": {"spare": 0},
271912So.canty@f5.com            "working_directory": script_path,
28*2330Szelenkov@nginx.com            "script": f'{script_path}/{name}',
291912So.canty@f5.com        }
301912So.canty@f5.com
311912So.canty@f5.com        for key in [
321912So.canty@f5.com            'hooks',
331912So.canty@f5.com        ]:
341912So.canty@f5.com            if key in kwargs:
351912So.canty@f5.com                app[key] = kwargs[key]
361912So.canty@f5.com
371050Szelenkov@nginx.com        self._load_conf(
381019Szelenkov@nginx.com            {
39*2330Szelenkov@nginx.com                "listeners": {"*:7080": {"pass": f"applications/{script}"}},
401912So.canty@f5.com                "applications": {script: app},
411303St.nateldemoura@f5.com            },
42*2330Szelenkov@nginx.com            **kwargs,
431019Szelenkov@nginx.com        )
44