xref: /unit/test/unit/applications/lang/node.py (revision 1303)
11019Szelenkov@nginx.comimport os
21019Szelenkov@nginx.comimport shutil
31019Szelenkov@nginx.comfrom unit.applications.proto import TestApplicationProto
41019Szelenkov@nginx.com
51019Szelenkov@nginx.com
61019Szelenkov@nginx.comclass TestApplicationNode(TestApplicationProto):
71165Szelenkov@nginx.com    @classmethod
81165Szelenkov@nginx.com    def setUpClass(cls, complete_check=True):
91165Szelenkov@nginx.com        unit = super().setUpClass(complete_check=False)
101165Szelenkov@nginx.com
111165Szelenkov@nginx.com        # check node module
121165Szelenkov@nginx.com
131165Szelenkov@nginx.com        if os.path.exists(unit.pardir + '/node/node_modules'):
141165Szelenkov@nginx.com            cls.available['modules']['node'] = []
151165Szelenkov@nginx.com
161165Szelenkov@nginx.com        return unit if not complete_check else unit.complete()
171165Szelenkov@nginx.com
18*1303St.nateldemoura@f5.com    def load(self, script, name='app.js', **kwargs):
191019Szelenkov@nginx.com        # copy application
201019Szelenkov@nginx.com
211019Szelenkov@nginx.com        shutil.copytree(
221019Szelenkov@nginx.com            self.current_dir + '/node/' + script, self.testdir + '/node'
231019Szelenkov@nginx.com        )
241019Szelenkov@nginx.com
251293St.nateldemoura@f5.com        # copy modules
261019Szelenkov@nginx.com
271293St.nateldemoura@f5.com        shutil.copytree(
281019Szelenkov@nginx.com            self.pardir + '/node/node_modules',
291019Szelenkov@nginx.com            self.testdir + '/node/node_modules',
301019Szelenkov@nginx.com        )
311019Szelenkov@nginx.com
321293St.nateldemoura@f5.com        self.public_dir(self.testdir + '/node')
331293St.nateldemoura@f5.com
341050Szelenkov@nginx.com        self._load_conf(
351019Szelenkov@nginx.com            {
361041Svbart@nginx.com                "listeners": {"*:7080": {"pass": "applications/" + script}},
371019Szelenkov@nginx.com                "applications": {
381019Szelenkov@nginx.com                    script: {
391019Szelenkov@nginx.com                        "type": "external",
401019Szelenkov@nginx.com                        "processes": {"spare": 0},
411019Szelenkov@nginx.com                        "working_directory": self.testdir + '/node',
421019Szelenkov@nginx.com                        "executable": name,
431019Szelenkov@nginx.com                    }
441019Szelenkov@nginx.com                },
45*1303St.nateldemoura@f5.com            },
46*1303St.nateldemoura@f5.com            **kwargs
471019Szelenkov@nginx.com        )
48