tests: reduce subprocess count to 600 in test_reaper_race

800 seems to be still too high to reliably pass when run in mock or in
a user session with the default ulimit of 1024, although it seems to me
the numbers don't really add up...

Change-Id: I9f411b338156ef6a75ecfd117ada90e5215eb2e3
tests: greenlet failures were not being reported in test_async

If a test function being run inside a greenlet failed, it was printed to
stderr but was never raised in the main context so the failure was
ignored.

Also ensured that all MonitoredSubprocess instances in the tests have
a timeout set. This is a workaround to ensure that there is always at
least one other greenlet alive when we block on the test greenlet.
Gevent is not smart enough to know that we have a SIGCHLD handler which
will spawn new greenlets at a future time, therefore when it sees only
one live greenlet waiting on an event it thinks we have deadlocked. The
proper fix for this would be to use the built-in child watching in
Gevent 1.0 final.

Change-Id: I938aa7303ee7764cd60b91f4893871c8bed6a1d5
also run Common and LabController unit tests during build

Change-Id: Id21f0f36e736be934382b96a69b4209e17b29cf0
pylint: subtask watching was "temporarily" disabled in commit 5eee47b1f

Change-Id: I4af824dd2179d8d725b1f44517887e2b7fc7360b
pylint: convert mix-in to helper functions in test_schema.py

Pylint didn't like the mix-in methods referencing instance attributes
which are not defined on the mix-in.

Change-Id: I24e4d5f095b27b281ced8868224732e473851a24
pylint: _parse_response method does not exist in Python 2.7

This method was removed in favour of parse_response which just uses the
buffered socket instead of the raw socket. We can call parse_response
unconditionally since it is defined on earlier Python versions too.

Change-Id: Ia18877cbb468e41b800b2b7ac717c2bd5b9d93b1
pylint: qpid support was removed from client and LC in commit 27b6f19a

Change-Id: I88c2934fbef4730f9bebc06ab330e64528ce2b54
pylint: rename importer mix-in classes to have Mixin in their name

This way pylint will ignore missing members in the methods of these
classes.

Change-Id: I4c9968e7f3ce2ee7da02962cbaa9101ea4df35a9
pylint: decorate SQL expression hybrid methods with @classmethod

The SQL expression half of a hybrid method really is a "classmethod" in
the sense that it receives a class and not an instance as its first
argument. So it makes sense to decorate it with @classmethod. That way
we also keep pylint happy.

Change-Id: I2d98d8c56597831f5f965ab2496b31903af50001
pylint: fix minor errors identified by pylint

Change-Id: I9b0af80ce4b2f44f6469c9185a33c1ba039b7d22
pylint: suppress some additional pylint false positives

Change-Id: I22848653924c69f3b57dee034009c5c51415beeb
Run pylint when building a RPM

Change-Id: I5573272690353703e8ea719f180126830582917a