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