It appears we have incomplete mocks for the py27 and py34 unit tests. When run on a host with a running devstack they report a large (14+) number of test failures, mostly related to neutron client calls.
To reproduce:
1. Install devstack with Octavia enabled
2. Checkout a fresh copy of master Octavia
3. Run tox -e py27 or py34
An example:
======================================================================
FAIL: octavia.tests.unit.controller.worker.tasks.test_network_tasks.TestNetworkTasks.test_update_vip
tags: worker-2
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/mock/mock.py", line 1305, in patched
return func(*args, **keywargs)
File "/home/michjohn/projects/dnsname/octavia/octavia/tests/unit/controller/worker/tasks/test_network_tasks.py", line 392, in test_update_vip
net_task = network_tasks.UpdateVIP()
File "/home/michjohn/projects/dnsname/octavia/octavia/controller/worker/tasks/network_tasks.py", line 40, in __init__
self.network_driver = utils.get_network_driver()
File "/home/michjohn/projects/dnsname/octavia/octavia/common/utils.py", line 68, in get_network_driver
invoke_on_load=True
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/stevedore/driver.py", line 46, in __init__
verify_requirements=verify_requirements,
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/stevedore/named.py", line 55, in __init__
verify_requirements)
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/stevedore/extension.py", line 171, in _load_plugins
self._on_load_failure_callback(self, ep, err)
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/stevedore/extension.py", line 163, in _load_plugins
verify_requirements,
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/stevedore/named.py", line 123, in _load_one_plugin
verify_requirements,
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/stevedore/extension.py", line 188, in _load_one_plugin
obj = plugin(*invoke_args, **invoke_kwds)
File "/home/michjohn/projects/dnsname/octavia/octavia/network/drivers/neutron/allowed_address_pairs.py", line 48, in __init__
super(AllowedAddressPairsDriver, self).__init__()
File "/home/michjohn/projects/dnsname/octavia/octavia/network/drivers/neutron/base.py", line 46, in __init__
extensions = self.neutron_client.list_extensions()
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/neutronclient/v2_0/client.py", line 608, in list_extensions
return self.get(self.extensions_path, params=_params)
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/neutronclient/v2_0/client.py", line 342, in get
headers=headers, params=params)
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/neutronclient/v2_0/client.py", line 319, in retry_request
headers=headers, params=params)
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/neutronclient/v2_0/client.py", line 282, in do_request
self._handle_fault_response(status_code, replybody, resp)
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/neutronclient/v2_0/client.py", line 257, in _handle_fault_response
exception_handler_v20(status_code, error_body)
File "/home/michjohn/projects/dnsname/octavia/.tox/py34/lib/python3.4/site-packages/neutronclient/v2_0/client.py", line 84, in exception_handler_v20
request_ids=request_ids)
neutronclient.common.exceptions.NeutronClientException: <MagicMock name='mock.request().text' id='139857024574296'>
Neutron server returns request_ids: [<MagicMock name='mock.request()' id='139857024561840'>]
If you run clean.sh to shutdown devstack, the tests pass again.