11019Szelenkov@nginx.comimport shutil 21472Svbart@nginx.comfrom urllib.parse import quote 31477Szelenkov@nginx.com 41635Szelenkov@nginx.comfrom conftest import public_dir 51019Szelenkov@nginx.comfrom unit.applications.proto import TestApplicationProto 6*1730Szelenkov@nginx.comfrom unit.option import option 71019Szelenkov@nginx.com 81019Szelenkov@nginx.com 91019Szelenkov@nginx.comclass TestApplicationNode(TestApplicationProto): 101657Szelenkov@nginx.com def prepare_env(self, script): 111019Szelenkov@nginx.com # copy application 121019Szelenkov@nginx.com 131019Szelenkov@nginx.com shutil.copytree( 141654Szelenkov@nginx.com option.test_dir + '/node/' + script, option.temp_dir + '/node' 151019Szelenkov@nginx.com ) 161019Szelenkov@nginx.com 171293St.nateldemoura@f5.com # copy modules 181019Szelenkov@nginx.com 191293St.nateldemoura@f5.com shutil.copytree( 201621Szelenkov@nginx.com option.current_dir + '/node/node_modules', 211654Szelenkov@nginx.com option.temp_dir + '/node/node_modules', 221019Szelenkov@nginx.com ) 231019Szelenkov@nginx.com 241654Szelenkov@nginx.com public_dir(option.temp_dir + '/node') 251293St.nateldemoura@f5.com 261657Szelenkov@nginx.com def load(self, script, name='app.js', **kwargs): 271657Szelenkov@nginx.com self.prepare_env(script) 281657Szelenkov@nginx.com 291050Szelenkov@nginx.com self._load_conf( 301019Szelenkov@nginx.com { 311472Svbart@nginx.com "listeners": { 321472Svbart@nginx.com "*:7080": {"pass": "applications/" + quote(script, '')} 331472Svbart@nginx.com }, 341019Szelenkov@nginx.com "applications": { 351019Szelenkov@nginx.com script: { 361019Szelenkov@nginx.com "type": "external", 371019Szelenkov@nginx.com "processes": {"spare": 0}, 381654Szelenkov@nginx.com "working_directory": option.temp_dir + '/node', 391019Szelenkov@nginx.com "executable": name, 401019Szelenkov@nginx.com } 411019Szelenkov@nginx.com }, 421303St.nateldemoura@f5.com }, 431303St.nateldemoura@f5.com **kwargs 441019Szelenkov@nginx.com ) 45