← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1125951] Re: Some tests from test_dhcp_agent depend on each other

 

** Changed in: quantum
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to quantum.
https://bugs.launchpad.net/bugs/1125951

Title:
  Some tests from test_dhcp_agent depend on each other

Status in OpenStack Quantum (virtual network service):
  Fix Released

Bug description:
  Some tests from test_dhcp_agent depend on each other and fail for
  several launch orders. They may need config options that are
  initialized in other tests.

  Example.
  1. Run only TestDhcpAgentEventHandler

  $ nosetests quantum.tests.unit.test_dhcp_agent:TestDhcpAgentEventHandler
  test_disable_dhcp_helper_driver_failure (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_disable_dhcp_helper_known_network (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_disable_dhcp_helper_unknown_network (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_enable_dhcp_helper (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_enable_dhcp_helper_down_network (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_enable_dhcp_helper_driver_failure (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_enable_dhcp_helper_exception_during_rpc (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_network_create_end (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_network_delete_end (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_network_update_end_admin_state_down (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_network_update_end_admin_state_up (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_port_delete_end (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_port_delete_end_unknown_port (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_port_update_end (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_refresh_dhcp_helper_exception_during_rpc (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_refresh_dhcp_helper_no_dhcp_enabled_networks (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_subnet_update_end (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR
  test_subnet_update_end_delete_payload (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler) ... ERROR

  ======================================================================
  ERROR: test_disable_dhcp_helper_driver_failure (quantum.tests.unit.test_dhcp_agent.TestDhcpAgentEventHandler)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "/tmp/myenv/quantum/quantum/tests/unit/test_dhcp_agent.py", line 273, in setUp
      self.dhcp = dhcp_agent.DhcpAgent(cfg.CONF)
    File "/tmp/myenv/quantum/quantum/agent/dhcp_agent.py", line 68, in __init__
      self.lease_relay = DhcpLeaseRelay(self.update_lease)
    File "/tmp/myenv/quantum/quantum/agent/dhcp_agent.py", line 504, in __init__
      dirname = os.path.dirname(cfg.CONF.dhcp_lease_relay_socket)
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1150, in __getattr__
      return self._get(name)
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1454, in _get
      value = self._substitute(self._do_get(name, group))
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1470, in _do_get
      info = self._get_opt_info(name, group)
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1570, in _get_opt_info
      raise NoSuchOptError(opt_name, group)
  NoSuchOptError: no such option: dhcp_lease_relay_socket

  2. Run only TestDhcpAgent

  $ nosetests quantum.tests.unit.test_dhcp_agent:TestDhcpAgent
  test_call_driver (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ok
  test_call_driver_failure (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ok
  test_dhcp_agent_main (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ok
  test_periodic_resync (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR
  test_periodoc_resync_helper (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR
  test_run_completes_single_pass (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ok
  test_sync_state_disabled_net (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR
  test_sync_state_initial (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR
  test_sync_state_plugin_error (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR
  test_sync_state_same (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR
  test_update_lease (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR
  test_update_lease_failure (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent) ... ERROR

  ======================================================================
  ERROR: test_periodic_resync (quantum.tests.unit.test_dhcp_agent.TestDhcpAgent)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "/tmp/myenv/quantum/quantum/tests/unit/test_dhcp_agent.py", line 234, in test_periodic_resync
      dhcp = dhcp_agent.DhcpAgent(cfg.CONF)
    File "/tmp/myenv/quantum/quantum/agent/dhcp_agent.py", line 66, in __init__
      self.device_manager = DeviceManager(self.conf, self.plugin_rpc)
    File "/tmp/myenv/quantum/quantum/agent/dhcp_agent.py", line 398, in __init__
      if not conf.interface_driver:
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1150, in __getattr__
      return self._get(name)
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1454, in _get
      value = self._substitute(self._do_get(name, group))
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1470, in _do_get
      info = self._get_opt_info(name, group)
    File "/tmp/myenv/quantum/quantum/openstack/common/cfg.py", line 1570, in _get_opt_info
      raise NoSuchOptError(opt_name, group)
  NoSuchOptError: no such option: interface_driver

  And so on.

  These problems can be fixed easily (just register necessary options in
  setUp):

  --- a/quantum/tests/unit/test_dhcp_agent.py
  +++ b/quantum/tests/unit/test_dhcp_agent.py
  @@ -85,6 +85,7 @@ fake_down_network = FakeModel('12345678-dddd-dddd-1234567890ab',
   
   class TestDhcpAgent(unittest.TestCase):
       def setUp(self):
  +        cfg.CONF.register_opts(dhcp_agent.DeviceManager.OPTS)
           cfg.CONF.register_opts(dhcp_agent.DhcpAgent.OPTS)
           cfg.CONF.register_opts(dhcp_agent.DhcpLeaseRelay.OPTS)
           self.driver_cls_p = mock.patch(
  @@ -251,6 +252,7 @@ class TestDhcpAgent(unittest.TestCase):
   
   class TestDhcpAgentEventHandler(unittest.TestCase):
       def setUp(self):
           cfg.CONF.register_opts(dhcp_agent.DeviceManager.OPTS)
  +        cfg.CONF.register_opts(dhcp_agent.DhcpLeaseRelay.OPTS)
           cfg.CONF.set_override('interface_driver',
                                 'quantum.agent.linux.interface.NullDriver')

To manage notifications about this bug go to:
https://bugs.launchpad.net/quantum/+bug/1125951/+subscriptions