← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1363221] [NEW] tenant_list is not mocked in admin.routers.tests

 

Public bug reported:

commit d9ecd8d15759297a15382d7353482a2eff4b26bb (https://review.openstack.org/#/c/75934/) added a new test to openstack_dashboard.admin.routers.tests, but api.keystone.tenant_list is not mocked.
As a result, unit tests fails like http://logs.openstack.org/88/114088/6/check/gate-horizon-python27/cce2205/dashboard_nose_results.html.

Curiously enough,  it doesn't always occurs. I cannot reproduce it in my
local env but OpenStack CI jenkins fails.

ft22.5: openstack_dashboard.dashboards.admin.routers.tests.RouterTests.test_set_external_network_emptyTraceback (most recent call last):
  File "/usr/lib/python2.7/unittest/case.py", line 331, in run
    testMethod()
  File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/test/helpers.py", line 77, in instance_stub_out
    return fn(self, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/routers/tests.py", line 72, in test_set_external_network_empty
    res = self.client.get(self.INDEX_URL)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/test/client.py", line 473, in get
    response = super(Client, self).get(path, data=data, **extra)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/test/client.py", line 280, in get
    return self.request(**r)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/test/client.py", line 444, in request
    six.reraise(*exc_info)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 36, in dec
    return view_func(request, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 84, in dec
    return view_func(request, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 52, in dec
    return view_func(request, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 36, in dec
    return view_func(request, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 84, in dec
    return view_func(request, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
    return self.dispatch(request, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/views/generic/base.py", line 87, in dispatch
    return handler(request, *args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 157, in get
    handled = self.construct_tables()
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 148, in construct_tables
    handled = self.handle_table(table)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 120, in handle_table
    data = self._get_data_dict()
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 185, in _get_data_dict
    self._data = {self.table_class._meta.name: self.get_data()}
  File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/routers/views.py", line 56, in get_data
    routers = self._get_routers()
  File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/routers/views.py", line 43, in _get_routers
    tenant_dict = self._get_tenant_list()
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/utils/memoized.py", line 90, in wrapped
    value = cache[key] = func(*args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/networks/views.py", line 50, in _get_tenant_list
    exceptions.handle(self.request, msg)
  File "/home/jenkins/workspace/gate-horizon-python27/horizon/exceptions.py", line 334, in handle
    six.reraise(exc_type, exc_value, exc_traceback)
  File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/networks/views.py", line 46, in _get_tenant_list
    tenants, has_more = api.keystone.tenant_list(self.request)
  File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/api/keystone.py", line 271, in tenant_list
    tenants = manager.list(domain=domain, user=user)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/utils.py", line 318, in inner
    return func(*args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/v3/projects.py", line 79, in list
    **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/base.py", line 71, in func
    return f(*args, **new_kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/base.py", line 352, in list
    self.collection_key)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/base.py", line 112, in _list
    resp, body = self.client.get(url, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/httpclient.py", line 611, in get
    return self._cs_request(url, 'GET', **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/httpclient.py", line 603, in _cs_request
    return self.request(url, method, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/httpclient.py", line 578, in request
    resp = super(HTTPClient, self).request(url, method, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/baseclient.py", line 21, in request
    return self.session.request(url, method, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/utils.py", line 318, in inner
    return func(*args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/session.py", line 324, in request
    resp = self._send_request(url, method, redirect, log, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/session.py", line 350, in _send_request
    resp = self.session.request(method, url, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/session.py", line 65, in request
    return requests.request(*args, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/sessions.py", line 448, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/sessions.py", line 554, in send
    r = adapter.send(request, **kwargs)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/adapters.py", line 359, in send
    timeout=timeout
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen
    _pool=self, _stacktrace=stacktrace)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/util/retry.py", line 245, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 516, in urlopen
    body=body, headers=headers)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 308, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python2.7/httplib.py", line 973, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python2.7/httplib.py", line 1007, in _send_request
    self.endheaders(body)
  File "/usr/lib/python2.7/httplib.py", line 969, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 829, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 791, in send
    self.connect()
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connection.py", line 146, in connect
    conn = self._new_conn()
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connection.py", line 125, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/util/connection.py", line 64, in create_connection
    for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
ProtocolError: ('Connection aborted.', gaierror(-2, 'Name or service not known'))

** Affects: horizon
     Importance: Medium
     Assignee: Akihiro Motoki (amotoki)
         Status: New


** Tags: neutron unittest

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Dashboard (Horizon).
https://bugs.launchpad.net/bugs/1363221

Title:
  tenant_list is not mocked in admin.routers.tests

Status in OpenStack Dashboard (Horizon):
  New

Bug description:
  commit d9ecd8d15759297a15382d7353482a2eff4b26bb (https://review.openstack.org/#/c/75934/) added a new test to openstack_dashboard.admin.routers.tests, but api.keystone.tenant_list is not mocked.
  As a result, unit tests fails like http://logs.openstack.org/88/114088/6/check/gate-horizon-python27/cce2205/dashboard_nose_results.html.

  Curiously enough,  it doesn't always occurs. I cannot reproduce it in
  my local env but OpenStack CI jenkins fails.

  ft22.5: openstack_dashboard.dashboards.admin.routers.tests.RouterTests.test_set_external_network_emptyTraceback (most recent call last):
    File "/usr/lib/python2.7/unittest/case.py", line 331, in run
      testMethod()
    File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/test/helpers.py", line 77, in instance_stub_out
      return fn(self, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/routers/tests.py", line 72, in test_set_external_network_empty
      res = self.client.get(self.INDEX_URL)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/test/client.py", line 473, in get
      response = super(Client, self).get(path, data=data, **extra)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/test/client.py", line 280, in get
      return self.request(**r)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/test/client.py", line 444, in request
      six.reraise(*exc_info)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 112, in get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 36, in dec
      return view_func(request, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 84, in dec
      return view_func(request, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 52, in dec
      return view_func(request, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 36, in dec
      return view_func(request, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/decorators.py", line 84, in dec
      return view_func(request, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/views/generic/base.py", line 69, in view
      return self.dispatch(request, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/django/views/generic/base.py", line 87, in dispatch
      return handler(request, *args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 157, in get
      handled = self.construct_tables()
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 148, in construct_tables
      handled = self.handle_table(table)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 120, in handle_table
      data = self._get_data_dict()
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/tables/views.py", line 185, in _get_data_dict
      self._data = {self.table_class._meta.name: self.get_data()}
    File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/routers/views.py", line 56, in get_data
      routers = self._get_routers()
    File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/routers/views.py", line 43, in _get_routers
      tenant_dict = self._get_tenant_list()
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/utils/memoized.py", line 90, in wrapped
      value = cache[key] = func(*args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/networks/views.py", line 50, in _get_tenant_list
      exceptions.handle(self.request, msg)
    File "/home/jenkins/workspace/gate-horizon-python27/horizon/exceptions.py", line 334, in handle
      six.reraise(exc_type, exc_value, exc_traceback)
    File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/dashboards/admin/networks/views.py", line 46, in _get_tenant_list
      tenants, has_more = api.keystone.tenant_list(self.request)
    File "/home/jenkins/workspace/gate-horizon-python27/openstack_dashboard/api/keystone.py", line 271, in tenant_list
      tenants = manager.list(domain=domain, user=user)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/utils.py", line 318, in inner
      return func(*args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/v3/projects.py", line 79, in list
      **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/base.py", line 71, in func
      return f(*args, **new_kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/base.py", line 352, in list
      self.collection_key)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/base.py", line 112, in _list
      resp, body = self.client.get(url, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/httpclient.py", line 611, in get
      return self._cs_request(url, 'GET', **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/httpclient.py", line 603, in _cs_request
      return self.request(url, method, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/httpclient.py", line 578, in request
      resp = super(HTTPClient, self).request(url, method, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/baseclient.py", line 21, in request
      return self.session.request(url, method, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/utils.py", line 318, in inner
      return func(*args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/session.py", line 324, in request
      resp = self._send_request(url, method, redirect, log, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/session.py", line 350, in _send_request
      resp = self.session.request(method, url, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/keystoneclient/session.py", line 65, in request
      return requests.request(*args, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/api.py", line 44, in request
      return session.request(method=method, url=url, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/sessions.py", line 448, in request
      resp = self.send(prep, **send_kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/sessions.py", line 554, in send
      r = adapter.send(request, **kwargs)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/adapters.py", line 359, in send
      timeout=timeout
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 559, in urlopen
      _pool=self, _stacktrace=stacktrace)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/util/retry.py", line 245, in increment
      raise six.reraise(type(error), error, _stacktrace)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 516, in urlopen
      body=body, headers=headers)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 308, in _make_request
      conn.request(method, url, **httplib_request_kw)
    File "/usr/lib/python2.7/httplib.py", line 973, in request
      self._send_request(method, url, body, headers)
    File "/usr/lib/python2.7/httplib.py", line 1007, in _send_request
      self.endheaders(body)
    File "/usr/lib/python2.7/httplib.py", line 969, in endheaders
      self._send_output(message_body)
    File "/usr/lib/python2.7/httplib.py", line 829, in _send_output
      self.send(msg)
    File "/usr/lib/python2.7/httplib.py", line 791, in send
      self.connect()
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connection.py", line 146, in connect
      conn = self._new_conn()
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/connection.py", line 125, in _new_conn
      (self.host, self.port), self.timeout, **extra_kw)
    File "/home/jenkins/workspace/gate-horizon-python27/.tox/py27/local/lib/python2.7/site-packages/requests/packages/urllib3/util/connection.py", line 64, in create_connection
      for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
  ProtocolError: ('Connection aborted.', gaierror(-2, 'Name or service not known'))

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


Follow ups

References