Plus other integration packages that get them to work with each other, namely the various karma-* packages for integration with karma. For full details on the environment that will be installed through the calmjs framework, the command calmjs npm calmjs.dev can be invoked to view the package.json once this package is installed into a Python environment. For installation, please refer to the following section.
The usage of this is typically through the calmjs runtime system.
As the goal of calmjs.dev is to integrate Node.js development tools into a Python environment, both Node.js and npm are required to be available within the target installation environment; if they are not installed please follow the installation steps for Node.js appropriate for the target operating system/environment/platform.
Naturally, since this is achieved through calmjs, it will need to be available in the target installation environment; however, this is achieved simply by installing calmjs.dev through pip from PyPI.
$ pip install calmjs.dev
Alternative installation methods (for developers, advanced users)
Development is still ongoing with calmjs.dev, for the latest features and bug fixes, the development version may be desirable; however, the calmjs package must be installed first, otherwise the metadata must be regenerated after the installation, which can be achieved like so:
$ pip install git+https://github.com/calmjs/calmjs.git#egg=calmjs
Alternatively, the git repository can be cloned directly and execute python setup.py develop while inside the root of the source directory. Failure to do so will result in failure to install the development packages via calmjs from npm. This failure can be verified by tests for this package failed to correctly execute, and the appearance of distribution option: 'package_json' warning message while installing this package.
As calmjs is declared as both a namespace and a package, mixing installation methods as described above when installing with other calmjs packages may result in the module importer being unable to look up the target files. If such an error does arise please remove all modules and only stick with a single installation method for all packages within the calmjs namespace.
Installation of Node.js external dependencies
As this package integrates a number of Node.js packages to achieve the intended functionality of integration with that environment, Node.js packages required by this package can be installed into the current working directory through the calmjs executable with the included npm command:
$ calmjs npm --install calmjs.dev
Testing the installation
Finally, to verify for the successful installation of calmjs.dev, the included tests may be executed through this command:
$ python -m unittest calmjs.dev.tests.make_suite
However, if the steps to install external Node.js dependencies to the current directory was followed, the current directory may be specified as the CALMJS_TEST_ENV environment variable. Under POSIX compatible shells this may be executed instead from within that directory:
$ CALMJS_TEST_ENV=. python -m unittest calmjs.dev.tests.make_suite
Do note a number of failures during execution of Karma may appear; this is normal as these are tests that involve the simulation of failures to ensure proper error handling on real test failures.
The default tool is meant to provide an injectable runtime that sits before a calmjs toolchain runtime that is responsible for the generation of deployable artifacts, such as AMD bundles through RequireJS. Currently, the standard way to use this package is to use it in conjunction of the calmjs.rjs package runtime. For instance, one might execute the r.js tool through calmjs.rjs like:
$ calmjs rjs example.package
$ calmjs karma rjs example.package
This would apply a test advice to the rjs toolchain and invoke it. Normally, before the bundling is done, the tests will be executed against the transpiled sources in the build directory.
To run tests against pre-generated artifact files, calmjs.dev provides a surrogate toolchain runtime specific for the karma command that may be used to achieve this purpose. For example, if one wishes to run tests a bundle file bundle.js which they assumed to contain code from example.package, they may wish to run tests defined for that package by invoking:
$ calmjs karma run \ --artifact=bundle.js \ --test-package=example.package
However, for more complicated toolchains and packages this will probably not work, as the generation of these artifacts typically involve extra optional advices that have been added. To address that, one may apply the --toolchain-package flag which serves a similar purpose as the --optional-advice flag for certain toolchains. For calmjs.rjs, this is necessary. The full command may be like so:
$ calmjs karma run \ --artifact=bundle.js \ --test-package=example.package \ --toolchain-package=calmjs.rjs
As with all calmjs tools, more help can be acquired by appending -h or --help to each of the runtime commands, i.e. calmjs karma -h or calmjs karma run -h. Replacing the -h flag with -V will report the version information for the underlying packages associated with the respective runtime used.
More on testing in conjunction with artifacts
$ calmjs rjs nunja $ calmjs karma --cover-artifact --artifact=nunja.js --coverage \ --cover-test rjs nunja.stock --source-map-method=explicit
The first command produces the artifact file nunja.js, which is then immediately used by the subsequent command which explicitly filters out all other sources not specified. Otherwise, the standard way is that the dependencies will also be included into the test and the resulting artifact file.
The following may be some issues that may be encountered with standard or typical usage of calmjs.dev.
Error: No provider for “framework:mocha”! (Resolving: framework:mocha)
The most likely cause of this error is that the npm dependencies specified for this package is not available for the current Node.js environment. Please ensure that is installed before trying again. One method is to prepend calmjs.dev to the calmjs npm install command, e.g:
$ calmjs npm --install calmjs.dev ...
Alternatively, package developers can have extras that requires this package, and instruct downstream users interested in the development of that package to install and use the package with that extras flag enabled. For instance, nunja has the support for that:
$ calmjs npm --install nunja[dev]
ERROR [plugin]: “karma-…” plugin: …
A message specific to some plugin may result in the test runner not being able to execute any test. This is typically caused by certain versions of karma test runner not being able to cleanly deal with misbehaving plugins that is available in the node_modules directory. If the plugin shown inside the quote (starting with karma-) is unnecessary for the execution of tests, it should be removed and the test command should be executed again.
UserWarning: Unknown distribution option: ‘package_json’
Installation using the development method will show the above message if calmjs was not already installed into the current environment. Please either reinstall, or regenerate the metadata by running:
$ python setup.py egg_info
In the root of the calmjs.dev source directory to ensure correct behavior of this package.
The Calmjs project is copyright (c) 2016 Auckland Bioengineering Institute, University of Auckland. calmjs.dev is licensed under the terms of the GPLv2 or later.
- Tests are now automatically wrapped by a default template when served by karma to better limit the scope of the variables defined within each file. This can be disabled using --no-wrap-tests flag on the karma runtime.
- Move the --artifact and --cover-artifact flag up to the main karma runtime to permit wider and more flexible usage for all runners.
- Correctly report the path of missing specified artifacts in the logs.
- Provide test prefix key and constant.
- Correct the inability to launch standard graphical browsers directly via the runner under Windows.
- Initial release of the development support for the calmjs framework.
- Include karma test runner integration as a calmjs runtime that can accept calmjs toolchain runtimes to facilitate testing.
- Leverage the toolchain advice system for adding the test runner and also permit the modification of test configurations by toolchain implementations that require specific instructions for a successful execution of tests.
- Permit integration with other packages for testing artifacts generated by other systems.
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|
|calmjs.dev-1.1.0-py2.py3-none-any.whl (37.1 kB) Copy SHA256 Checksum SHA256||py2.py3||Wheel||Aug 10, 2017|
|calmjs.dev-1.1.0.zip (45.2 kB) Copy SHA256 Checksum SHA256||–||Source||Aug 10, 2017|