Improved NodeJS interpreter interaction
- Catch AttributeError in `__del__` if process was not initialized and self.proc was not created - Skip test_jsnode if node is not installed - Removed package-lock from gitignore
This commit is contained in:
parent
89608142fb
commit
3fbd283db1
4 changed files with 81 additions and 4 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -113,4 +113,3 @@ tests/samples/login_pswd.txt
|
|||
|
||||
# NPM
|
||||
node_modules/
|
||||
package-lock.json
|
||||
|
|
|
@ -108,8 +108,13 @@ class NodeInterpreter(Interpreter):
|
|||
return json.loads(resp.content)
|
||||
|
||||
def __del__(self) -> None:
|
||||
self.proc.terminate()
|
||||
self.proc.communicate()
|
||||
try:
|
||||
self.proc.terminate()
|
||||
self.proc.communicate()
|
||||
except AttributeError:
|
||||
logging.warning(
|
||||
'NodeJS process was not initialized'
|
||||
)
|
||||
|
||||
|
||||
class Js2PyInterpreter(Interpreter):
|
||||
|
|
67
python_aternos/data/package-lock.json
generated
Normal file
67
python_aternos/data/package-lock.json
generated
Normal file
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"name": "data",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"vm2": "^3.9.13"
|
||||
}
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.8.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
|
||||
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
|
||||
"bin": {
|
||||
"acorn": "bin/acorn"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/acorn-walk": {
|
||||
"version": "8.2.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
|
||||
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vm2": {
|
||||
"version": "3.9.13",
|
||||
"resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.13.tgz",
|
||||
"integrity": "sha512-0rvxpB8P8Shm4wX2EKOiMp7H2zq+HUE/UwodY0pCZXs9IffIKZq6vUti5OgkVCTakKo9e/fgO4X1fkwfjWxE3Q==",
|
||||
"dependencies": {
|
||||
"acorn": "^8.7.0",
|
||||
"acorn-walk": "^8.2.0"
|
||||
},
|
||||
"bin": {
|
||||
"vm2": "bin/vm2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"acorn": {
|
||||
"version": "8.8.1",
|
||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
|
||||
"integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
|
||||
},
|
||||
"acorn-walk": {
|
||||
"version": "8.2.0",
|
||||
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
|
||||
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
|
||||
},
|
||||
"vm2": {
|
||||
"version": "3.9.13",
|
||||
"resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.13.tgz",
|
||||
"integrity": "sha512-0rvxpB8P8Shm4wX2EKOiMp7H2zq+HUE/UwodY0pCZXs9IffIKZq6vUti5OgkVCTakKo9e/fgO4X1fkwfjWxE3Q==",
|
||||
"requires": {
|
||||
"acorn": "^8.7.0",
|
||||
"acorn-walk": "^8.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -12,7 +12,13 @@ class TestJsNode(unittest.TestCase):
|
|||
|
||||
self.tests = files.read_sample('token_input.txt')
|
||||
self.results = files.read_sample('token_output.txt')
|
||||
self.js = atjsparse.NodeInterpreter()
|
||||
|
||||
try:
|
||||
self.js = atjsparse.NodeInterpreter()
|
||||
except OSError as err:
|
||||
self.skipTest(
|
||||
f'Unable to start NodeJS interpreter: {err}'
|
||||
)
|
||||
|
||||
def test_exec(self) -> None:
|
||||
|
||||
|
|
Reference in a new issue