Skip to main content

Open End JavaScript testing and utility kit

Project description

jskit contains infrastructure and in particular a py.test plugin to enable running tests for JavaScript code inside browsers directly using py.test as the test driver. Running inside the browsers comes with some speed cost, on the other hand it means for example the code is tested against the real-word DOM implementations.

The approach also enables to write integration tests such that the JavaScript code is tested against server-side Python code mocked as necessary. Any server-side framework that can already be exposed through WSGI (or for which a subset of WSGI can be written to accommodate the jskit own needs) can play along.

jskit has also some support to run JavaScript tests from based test suites.

jskit also contains code to help modularizing JavaScript code which can be used to describe and track dependencies dynamically during development and that can help resolving them statically when deploying/packaging.

jskit requires Python 2.6 or 2.7. It also uses MochiKit - of which it ships a version within itself for convenience - for its own working though in does not imposes its usage on tested code.

It doesn’t work yet with py.test 2.0, but requires py.test 1.3.4!

jskit was initially developed by Open End AB and is released under the MIT license.

rest of the docs…

Europython 2009 talk with examples

The project repository lives at

Discussions and feedback should go to py-dev at



  • optionally delegate to the serverSide how the baseurl from which tests will be served should look like, useful when doing proxying for functional testing abuse of oejskit

  • change packaging to just offer a source tar file, so that makes it easier to package

  • requires Python 2.6 or 2.7


  • improved code to check for the presence of browsers which is used to skip tests, this means that listing non-present browsers in browser specs should not provoke problems

  • workaround to bug in FF3.5 triggered by the global var leak detection code, no leak detection with FF3.5 :(


  • flexible user-defined-name=commandline control over browser names for server with documentation

  • document the glue to standard library

  • better error reporting when a browser cannot be started

  • use json module included in Python >=2.6, simplejson otherwise

  • move the py.test plugin into the oejskit package, expose it through a pytest11 setuptools entry point

  • fix own-tests-only issues and warnings with py.test 1.1.x


  • fixes for py.test 1.0 final compatibility

  • experimental glue to standard library (no docs yet)

Project details

Download files

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

Source Distribution

oejskit-0.8.9.tar.gz (1.8 MB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page