Rename the attributes of IsMaster, ServerDescription, TopologyDescription, and
TopologySettings from "set_name" to "replica_set_name" for greater clarity.
Most tests now inherit from IntegrationTest and use self.client for all MongoDB
operations. self.client is now a replica set connection if an RS is available,
otherwise a connection to a standalone.
Connect the MongoClient to the replica set if one is running,
otherwise connect it to the standalone. Only continue to use
MongoReplicaSetClient when testing the specific behavior of
that deprecated class.
Also suppress some warnings when running tests, and better
determine whether to test IPv6.
If a previous test run created a user and didn't remove it (e.g. the test hung or a debugging session was terminated), the next test run will fail because of the narrowed localhost exception (SERVER-12621). Work around this by trying to log in as the test user, if that fails re-raise the original error.
Replace MongoClient with an implementation that relies on Cluster and Server. The new MongoClient takes over MongoReplicaSetClient's responsibilities.
Authentication, secondary-pinning, and Mongos high-availability are broken and will be reimplemented in a future commit. RS tests are temporarily disabled.
The setuptools 'test' command uses the TestResult class from unittest,
even when we're using unittest2 for Python 2.6. Since the old unittest
TestResult class doesn't have an addSkip method, raising SkipTest
causes a DeprecationWarning instead of skipping a test.
* RSState, Member, and MovingAverage are now immutable
* In refresh(), try up members before down ones
* A test_ha fixup (clear process-list after killing them in each test, so we don't re-kill previous tests' processes)