xref: /unit/test/unit/applications/lang/node.py (revision 1621:275b26bbd3ae)
1import os
2import shutil
3from urllib.parse import quote
4
5from unit.applications.proto import TestApplicationProto
6from conftest import option, public_dir
7
8
9class TestApplicationNode(TestApplicationProto):
10    def load(self, script, name='app.js', **kwargs):
11        # copy application
12
13        shutil.copytree(
14            option.test_dir + '/node/' + script, self.temp_dir + '/node'
15        )
16
17        # copy modules
18
19        shutil.copytree(
20            option.current_dir + '/node/node_modules',
21            self.temp_dir + '/node/node_modules',
22        )
23
24        public_dir(self.temp_dir + '/node')
25
26        self._load_conf(
27            {
28                "listeners": {
29                    "*:7080": {"pass": "applications/" + quote(script, '')}
30                },
31                "applications": {
32                    script: {
33                        "type": "external",
34                        "processes": {"spare": 0},
35                        "working_directory": self.temp_dir + '/node',
36                        "executable": name,
37                    }
38                },
39            },
40            **kwargs
41        )
42