Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Python-unittest integration for jslint.

Project Description

This package integrates the JSHint code analysis tool ( with Python’s unittest module. (The name is left over from when JSHint didn’t exist and only Douglas Crockford’s JSLint was available.)

It provides a special JSLint-TestCase class that collects JavaScript files (in a configurable manner) and dynamically generates a test method for each file that calls jshint on that file.

To use it, create a test class like this:

class MyJSLintTest(gocept.jslint.TestCase):

    include = ('my.package.browser:js',
    options = (gocept.jslint.TestCase.options +
               ('browser', 'jquery',))

include is a list of “resource paths” of the form packagename:path (passed to pkg_resources).

options is a list of arguments that are passed to JSHint (see its documentation for details).

predefined is a list of global names that should be considered predefined (for use with the undef option).

exclude can be a list of filenames (without path) that will not be collected.

All files ending in .js contained in each of these paths will be collected, and the test class will grow a method named test_jslint_filename.js.

You can ignore JSLint error by setting ignore on the test class (a list of substrings that are matched against each JSLint output line):

ignore = (
“Use a named parameter”, )


gocept.jslint requires Python 2.6 or later, but is not sure to run under Python 3.

gocept.jslint uses node.js to run jshint, so you need to have node.js (version 0.3 or later) with the jshint npm module installed and the jshint binary available on your $PATH.

You can customize the name of the jshint binary by setting jshint_command on the TestCase, or set the environment variable JSHINT_COMMAND.


1.1.1 (2014-10-22)

  • Get jshint command from environment (#13073).

1.1 (2012-05-21)

  • Use jshint instead of jslint.

1.0.1 (2012-04-18)

  • Uniquify duplicate file names in a prettier way: increment a counter, don’t just blindly append ‘_1’ (#9454).

1.0 (2011-08-25)

  • Add support for linting JS files contained in zipped eggs (#9453).
  • Add an entry point for running jslint from the command line (#9449).
  • Skip tests if node.js is not available. Skipping tests only works properly in Python >= 2.7, though. (#9458)

0.2 (2011-08-24)

  • Implement custom error ignores (#9456).

0.1 (2011-08-10)

  • first release.
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date (15.9 kB) Copy SHA256 Checksum SHA256 Source Oct 22, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting