Use mock's call assert methods over call_args_list

The way we're checking the value of call_args_list on a mock method is
essentially what assert_called_once_with() since we also know the
method is only called once. In other cases, we can use
assert_has_calls().

I'm slightly nervous of using call_args_list because it's the kind of
thing you could imagine changing in future, even though it's not
marked private.

Change-Id: I7eb3d095f7a1ff9a4abc9e027193d4918d0cda6c
Ensure routing key is specified in the address for a direct producer

This then matches the address used a direct consumer.

Change-Id: If71f78e50f8a9b3acfd1e9d02c8271f17c4ebee7
Closes-Bug: #1300318
Remove rendundant parentheses of cfg help strings

There is a hacking review https://review.openstack.org/#/c/74493/.
That makes me be aware we maybe have rendunant parentheses.
We'd better clean the parentheses, Python will handle that well.

Change-Id: Ib29f995feed45d71000f333a2cc7d14b0efcb0d5
Select AMQP message broker at random

The rule of choosing AMQP message broker is that chose first
available one in order now. The order depends on what we set in
configuration file. That means all the connections will flock
to same message broker and that may lead out performance issue.
This patch randomizes the order of choosing message broker for
each connection to leverage broker cluster.

Change-Id: Ib5098e574d4ef81428065885e2295d0f87aba715
Partial-Bug: #1261631
Logical error in blockless fanout of zmq

The blockless fanout doesn't take effect and it
only processes the FIRST one by returning after the first loop.

Change-Id: Iad071ab455e36be7b26637b286ca9f83fea4a019
Closes-Bug: #1300539
Merge "Remove rendundant parentheses of cfg help strings"
Merge "Ensure routing key is specified in the address for a direct producer"
Merge "Use mock's call assert methods over call_args_list"
Merge "Logical error in blockless fanout of zmq"