parent
dc535d9d6d
commit
e997caacf4
@ -0,0 +1,44 @@ |
|||||||
|
"""Run JSHint over the Javascript files.""" |
||||||
|
|
||||||
|
import os.path |
||||||
|
import subprocess |
||||||
|
import pytest |
||||||
|
|
||||||
|
# --------------------------------------------------------------------- |
||||||
|
|
||||||
|
@pytest.mark.skipif( not os.environ.get("JSHINT_RHINO"), reason="JSHint not configured." ) |
||||||
|
def test_jshint(): |
||||||
|
"""Run JSHint over the Javascript files. |
||||||
|
|
||||||
|
To set up JSHint: |
||||||
|
- install Rhino (Mozilla's Java-based (!) Javascript): |
||||||
|
sudo dnf install rhino |
||||||
|
- download and unpack JSHint: |
||||||
|
https://github.com/jshint/jshint |
||||||
|
- set JSHINT_RHINO to point to $/dist/jshint-rhino.js" |
||||||
|
|
||||||
|
IMPORTANT: Rhino + JSHint has been broken for some time: |
||||||
|
https://github.com/jshint/jshint/issues/2308 |
||||||
|
For now, use JSHint 2.6.3 :-/ |
||||||
|
""" |
||||||
|
|
||||||
|
# initialize |
||||||
|
jshint = os.environ[ "JSHINT_RHINO" ] |
||||||
|
|
||||||
|
# check each Javascript file |
||||||
|
dname = os.path.join( os.path.split(__file__)[0], "../static/" ) |
||||||
|
for fname in os.listdir(dname): |
||||||
|
if os.path.splitext(fname)[1] != ".js": |
||||||
|
continue |
||||||
|
# run JSHint for the next file |
||||||
|
proc = subprocess.run( |
||||||
|
[ jshint, os.path.join(dname,fname) ], |
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE, encoding="utf-8" |
||||||
|
) |
||||||
|
if proc.stdout or proc.stderr: |
||||||
|
print( "=== JSHint failed: {} ===".format( fname ) ) |
||||||
|
if proc.stdout: |
||||||
|
print( proc.stdout ) |
||||||
|
if proc.stderr: |
||||||
|
print( proc.stderr ) |
||||||
|
assert False |
Loading…
Reference in new issue