Project

General

Profile

Bug #37385

mgr/dashboard: Failure to run unit tests (on Fedora 29 with Python 3)

Added by Yaniv Kaul 15 days ago. Updated 14 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
dashboard/qa
Target version:
Start date:
11/25/2018
Due date:
% Done:

0%

Source:
Community (dev)
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:

Description

After few challenges getting Ceph compiled on F29 with Python 3, I've managed (with the help of few patches from the team) to succeed.
Tests fail though:

19/162 Test   #6: run-tox-mgr-dashboard ...................***Failed  119.62 sec
py3-cov create: /home/ykaul/github/ceph/build/py3-cov
py3-cov installdeps: -r/home/ykaul/github/ceph/src/pybind/mgr/dashboard/requirements.txt, -r/home/ykaul/github/ceph/src/pybind/mgr/dashboard/requirements-py3.txt
py3-cov installed: asn1crypto==0.24.0,astroid==1.6.1,attrs==17.4.0,backports.functools-lru-cache==1.4,bcrypt==3.1.4,certifi==2018.10.15,cffi==1.11.5,chardet==3.0.4,cheroot==6.0.0,CherryPy==13.1.0,configparser==3.5.0,coverage==4.4.2,cryptography==2.4.2,defusedxml==0.5.0,enum34==1.1.6,funcsigs==1.0.2,idna==2.7,isodate==0.6.0,isort==4.2.15,lazy-object-proxy==1.3.1,lxml==4.2.5,mccabe==0.6.1,mock==2.0.0,more-itertools==4.1.0,pbr==3.1.1,pkgconfig==1.4.0,pluggy==0.6.0,portend==2.2,py==1.5.2,pycodestyle==2.3.1,pycparser==2.18,PyJWT==1.6.4,pylint==1.8.2,pyOpenSSL==17.5.0,pytest==3.3.2,pytest-cov==2.5.1,pytest-faulthandler==1.0.1,python3-saml==1.4.1,pytz==2017.3,repoze.lru==0.7,requests==2.20.0,Routes==2.4.1,singledispatch==3.4.0.3,six==1.11.0,tempora==1.10,tox==2.9.1,urllib3==1.24.1,virtualenv==15.1.0,Werkzeug==0.14.1,wrapt==1.10.11,xmlsec==1.3.3
py3-cov runtests: PYTHONHASHSEED='4218570714'
py3-cov runtests: commands[0] | coverage erase
py3-cov runtests: commands[1] | /home/ykaul/github/ceph/build/py3-cov/bin/py.test --cov=. --cov-report= --junitxml=junit.py3-cov.xml --doctest-modules controllers/rbd.py services/ tests/ tools.py
============================= test session starts ==============================
platform linux -- Python 3.7.1, pytest-3.3.2, py-1.5.2, pluggy-0.6.0
rootdir: /home/ykaul/github/ceph/src/pybind/mgr/dashboard, inifile:
plugins: faulthandler-1.0.1, cov-2.5.1
collected 178 items

controllers/rbd.py ..                                                    [  1%]
services/ceph_service.py .                                               [  1%]
services/rgw_client.py .                                                 [  2%]
tests/test_access_control.py ........................................... [ 26%]
......                                                                   [ 29%]
tests/test_api_auditing.py ........                                      [ 34%]
tests/test_controllers.py ....................                           [ 45%]
tests/test_erasure_code_profile.py ....                                  [ 47%]
tests/test_exceptions.py ............                                    [ 54%]
tests/test_grafana.py ....                                               [ 56%]
tests/test_notification.py ....                                          [ 58%]
tests/test_rbd_mirroring.py ....                                         [ 61%]
tests/test_rest_client.py ........                                       [ 65%]
tests/test_rest_tasks.py ........                                        [ 70%]
tests/test_rgw_client.py ..                                              [ 71%]
tests/test_settings.py ..............                                    [ 79%]
tests/test_sso.py .....                                                  [ 82%]
tests/test_task.py ...............                                       [ 90%]
tests/test_tcmu_iscsi.py ...                                             [ 92%]
tests/test_tools.py ............                                         [ 98%]
tools.py ..                                                              [100%]

 generated xml file: /home/ykaul/github/ceph/src/pybind/mgr/dashboard/junit.py3-cov.xml 

========================= 178 passed in 41.39 seconds ==========================
py3-cov runtests: commands[2] | coverage combine /home/ykaul/github/ceph/src/pybind/mgr/dashboard/.coverage.py3-cov
py3-cov runtests: commands[3] | coverage report
Name                                   Stmts   Miss  Cover
----------------------------------------------------------
awsauth.py                                80     58    28%
controllers/__init__.py                  475    106    78%
controllers/auth.py                       51     51     0%
controllers/cephfs.py                    140    140     0%
controllers/cluster_configuration.py      36     36     0%
controllers/dashboard.py                  82     82     0%
controllers/docs.py                      124    124     0%
controllers/erasure_code_profile.py       38      8    79%
controllers/grafana.py                    61     10    84%
controllers/host.py                        8      8     0%
controllers/logging.py                     7      7     0%
controllers/monitor.py                    24     24     0%
controllers/osd.py                       101    101     0%
controllers/perf_counters.py              48     48     0%
controllers/pool.py                       98     98     0%
controllers/rbd.py                       306    207    32%
controllers/rbd_mirroring.py             159     47    70%
controllers/rgw.py                       157    157     0%
controllers/role.py                       76     76     0%
controllers/saml2.py                      71     71     0%
controllers/settings.py                   36      4    89%
controllers/summary.py                    39      5    87%
controllers/task.py                        8      0   100%
controllers/tcmu_iscsi.py                  8      0   100%
controllers/user.py                       68     68     0%
exceptions.py                             53      3    94%
module.py                                230    230     0%
rest_client.py                           259    167    36%
security.py                               31      0   100%
services/__init__.py                       1      0   100%
services/access_control.py               419     39    91%
services/auth.py                         123     84    32%
services/ceph_service.py                 156     93    40%
services/exception.py                     82     30    63%
services/rgw_client.py                   146     63    57%
services/sso.py                          136     23    83%
services/tcmu_service.py                  57      9    84%
settings.py                               96     26    73%
tools.py                                 488     34    93%
----------------------------------------------------------
TOTAL                                   4578   2337    49%
py3-cov runtests: commands[4] | coverage xml
py3-lint create: /home/ykaul/github/ceph/build/py3-lint
py3-lint installdeps: -r/home/ykaul/github/ceph/src/pybind/mgr/dashboard/requirements.txt, -r/home/ykaul/github/ceph/src/pybind/mgr/dashboard/requirements-py3.txt
py3-lint installed: asn1crypto==0.24.0,astroid==1.6.1,attrs==17.4.0,backports.functools-lru-cache==1.4,bcrypt==3.1.4,certifi==2018.10.15,cffi==1.11.5,chardet==3.0.4,cheroot==6.0.0,CherryPy==13.1.0,configparser==3.5.0,coverage==4.4.2,cryptography==2.4.2,defusedxml==0.5.0,enum34==1.1.6,funcsigs==1.0.2,idna==2.7,isodate==0.6.0,isort==4.2.15,lazy-object-proxy==1.3.1,lxml==4.2.5,mccabe==0.6.1,mock==2.0.0,more-itertools==4.1.0,pbr==3.1.1,pkgconfig==1.4.0,pluggy==0.6.0,portend==2.2,py==1.5.2,pycodestyle==2.3.1,pycparser==2.18,PyJWT==1.6.4,pylint==1.8.2,pyOpenSSL==17.5.0,pytest==3.3.2,pytest-cov==2.5.1,pytest-faulthandler==1.0.1,python3-saml==1.4.1,pytz==2017.3,repoze.lru==0.7,requests==2.20.0,Routes==2.4.1,singledispatch==3.4.0.3,six==1.11.0,tempora==1.10,tox==2.9.1,urllib3==1.24.1,virtualenv==15.1.0,Werkzeug==0.14.1,wrapt==1.10.11,xmlsec==1.3.3
py3-lint runtests: PYTHONHASHSEED='4218570714'
py3-lint runtests: commands[0] | pylint --rcfile=.pylintrc --jobs=5 . module.py tools.py controllers tests services exceptions.py
Using config file /home/ykaul/github/ceph/src/pybind/mgr/dashboard/.pylintrc
Traceback (most recent call last):
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/decorators.py", line 85, in wrapped
    res = next(generator)
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/decorators.py", line 100, in wrapped
    raise StopIteration
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/pylint/lint.py", line 942, in get_ast
    return MANAGER.ast_from_file(filepath, modname, source=True)
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/manager.py", line 80, in ast_from_file
    return AstroidBuilder(self).file_build(filepath, modname)
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/builder.py", line 153, in file_build
    return self._post_build(module, encoding)
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/builder.py", line 173, in _post_build
    self.delayed_assattr(delayed)
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/builder.py", line 232, in delayed_assattr
    for inferred in node.expr.infer():
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/decorators.py", line 85, in wrapped
    res = next(generator)
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/bases.py", line 95, in _infer_stmts
    for inferred in stmt.infer(context=context):
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/context.py", line 40, in cache_generator
    for result in generator:
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/decorators.py", line 82, in wrapped
    generator = _func(node, context, **kwargs)
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/inference.py", line 763, in infer_assign
    stmts = list(self.assigned_stmts(context=context))
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/protocols.py", line 304, in _arguments_infer_argname
    is_metaclass = isinstance(cls, nodes.ClassDef) and cls.type == 'metaclass'
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/scoped_nodes.py", line 1650, in _class_type
    if _is_metaclass(klass):
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/scoped_nodes.py", line 1619, in _is_metaclass
    for baseobj in base.infer():
RuntimeError: generator raised StopIteration
Traceback (most recent call last):
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/decorators.py", line 85, in wrapped
    res = next(generator)
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ykaul/github/ceph/build/py3-lint/lib/python3.7/site-packages/astroid/decorators.py", line 100, in wrapped
    raise StopIteration
StopIteration

History

#1 Updated by Brad Hubbard 15 days ago

  • Project changed from Ceph to mgr
  • Category changed from build to dashboard/general

Seems like it may be related to https://github.com/PyCQA/pylint/issues/2317 This specific error can be eliminated by bumping astroid and pylint but that introduces a plethora of py3-lint failures.

#2 Updated by Brad Hubbard 15 days ago

  • Subject changed from Failure to run unit tests (on Fedora 29 with Python 3) to mgr/dashboard: Failure to run unit tests (on Fedora 29 with Python 3)

#3 Updated by Lenz Grimmer 14 days ago

  • Description updated (diff)
  • Category changed from dashboard/general to dashboard/qa
  • Target version set to v14.0.0

Also available in: Atom PDF