Skip to content

Commit 39b8d75

Browse files
committed
Add basic tests
1 parent 0b2fa5d commit 39b8d75

File tree

5 files changed

+97
-1
lines changed

5 files changed

+97
-1
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
/dist
22
.DS_Store
3-
env*/
3+
env*/
4+
__pycache__/
5+
*.py[cod]

tests/test_node.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
"Test nodejs.node"
2+
3+
import os
4+
5+
6+
THIS_DIR = os.path.dirname(os.path.abspath(__file__))
7+
8+
9+
def test_package_installed():
10+
import nodejs
11+
assert nodejs.__version__ is not None
12+
13+
14+
def test_runs():
15+
from nodejs import node
16+
assert node.run(['--version']) is 0
17+
18+
19+
def test_version(capfd):
20+
from nodejs import node, node_version
21+
node.run(['--version'])
22+
out, err = capfd.readouterr()
23+
assert out.startswith('v')
24+
assert out.strip() == f'v{node_version}'
25+
26+
27+
def test_eval(capfd):
28+
from nodejs import node
29+
node.run(['--eval', 'console.log("hello")'])
30+
out, err = capfd.readouterr()
31+
assert out.strip() == 'hello'
32+
33+
34+
def test_eval_error(capfd):
35+
from nodejs import node
36+
node.run(['--eval', 'console.error("error")'])
37+
out, err = capfd.readouterr()
38+
assert err.strip() == 'error'
39+
40+
41+
def test_eval_error_exit():
42+
from nodejs import node
43+
ret = node.run(['--eval', 'process.exit(1)'])
44+
assert ret == 1
45+
46+
47+
def test_script(capfd):
48+
from nodejs import node
49+
node.run([os.path.join(THIS_DIR, 'test_node', 'test_script.js')])
50+
out, err = capfd.readouterr()
51+
assert out.strip() == 'hello'
52+
53+
54+
def test_args(capfd):
55+
from nodejs import node
56+
node.run([os.path.join(THIS_DIR, 'test_node', 'test_args.js'), 'hello'])
57+
out, err = capfd.readouterr()
58+
assert out.strip() == 'hello'
59+

tests/test_node/test_args.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log(process.argv[2]);

tests/test_node/test_script.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log('hello');

tests/test_npm.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"Test nodejs.npm"
2+
3+
import os
4+
from re import A
5+
6+
7+
def test_runs():
8+
from nodejs import npm
9+
assert npm.run(['--version']) is 0
10+
11+
12+
def test_version(capfd):
13+
from nodejs import npm
14+
npm.run(['--version'])
15+
out, err = capfd.readouterr()
16+
assert isinstance(out, str)
17+
18+
19+
def test_install_package(tmp_path, capfd):
20+
from nodejs import npm, node
21+
import json
22+
os.chdir(tmp_path)
23+
npm.run(['init', '-y'])
24+
assert (tmp_path / 'package.json').exists()
25+
npm.run(['install', 'is-even'])
26+
assert (tmp_path / 'node_modules' / 'is-even').exists()
27+
out, err = capfd.readouterr()
28+
node.run(['--eval', 'console.log(require("is-even")(42))'])
29+
out, err = capfd.readouterr()
30+
assert out.strip() == 'true'
31+
node.run(['--eval', 'console.log(require("is-even")(43))'])
32+
out, err = capfd.readouterr()
33+
assert out.strip() == 'false'

0 commit comments

Comments
 (0)