This includes:
* Ability to specify number of processes to run bok-choy tests in
* A forked nose commit to get the multiprocess plugin's logging to work
* A different plugin (xunitmp) must be used for pulling together xunit results
This works by:
* Starting the various servers that are needed for the acceptance test environment
* Running the tests themselves in multiprocess mode
The jenkins-common script is the better place for this particular setup, since that
script is doing similar setup steps to prepare the environment for running
various tests/subsequent scripts. This also will resolve downstream processes,
such as our jenkins AMI builder (for jenkins-worker images).
Note that because js testing occurs on a different CI job than python
unit testing, files will not be clobbered by this change. The python unit
testing job also creates the same-named report through the diff_coverage
task.
This gets us checking for tests inheriting from other tests. When that
happens, tests get run more than once, which is pointless. We have a
few dozen new warnings due to this new check.
This also disables unused-wildcard-import. That removes a few hundred
warnings.
Together, this means we can reduce the pylint limit to 5999. :)
The platform includes jshint as a development tool, and our
builds are enforcing a limit on total number of jshint violations.
This commit will enforce no new jshint violations on a per-change
basis, much like pylint and pep8 are enforced. So with this change,
we'll be enforcing our linting requirements consistently, regardless
of type of violations.
Also on Jenkins, runs quality task after installing jshint.
The old line:
from path import path
produced pylint errors because of the baroque way that path.py defined
"path". We tried to get them to change how they defined it, but they
deleted the name instead: https://github.com/jaraco/path.py/issues/102
(Jason then changed his mind, but this is a better way to use path.py,
it avoids the pylint error at least.)
This complexity metric is created by using radon (see changed files for additional
documentation links). This tool calculates cyclomatic complexity and provides a numeric grade
where a lower number is better (e.g., less complex).