diff --git a/.gitignore b/.gitignore index 77c08e2..f998960 100644 --- a/.gitignore +++ b/.gitignore @@ -113,4 +113,3 @@ tests/samples/login_pswd.txt # NPM node_modules/ -package-lock.json diff --git a/python_aternos/atjsparse.py b/python_aternos/atjsparse.py index 3aa11e4..68fe0be 100644 --- a/python_aternos/atjsparse.py +++ b/python_aternos/atjsparse.py @@ -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): diff --git a/python_aternos/data/package-lock.json b/python_aternos/data/package-lock.json new file mode 100644 index 0000000..32308df --- /dev/null +++ b/python_aternos/data/package-lock.json @@ -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" + } + } + } +} diff --git a/tests/test_jsnode.py b/tests/test_jsnode.py index 3598567..047a59b 100755 --- a/tests/test_jsnode.py +++ b/tests/test_jsnode.py @@ -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: