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