Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8.4.1: pytest is failing in tests/test_linters.py::test_pylint unit #238

Open
kloczek opened this issue Mar 7, 2023 · 1 comment · May be fixed by #243
Open

8.4.1: pytest is failing in tests/test_linters.py::test_pylint unit #238

kloczek opened this issue Mar 7, 2023 · 1 comment · May be fixed by #243

Comments

@kloczek
Copy link

kloczek commented Mar 7, 2023

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with $PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>
  • build is performed in env which is cut off from access to the public network (pytest is executed with -m "not network")

Here is pytest output:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-pylama-8.4.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-pylama-8.4.1-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -m 'not network' -q
PYLINTHOME is now '/home/tkloczko/.cache/pylint' but obsolescent '/home/tkloczko/.pylint.d' is found; you can safely remove the latter
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.8.16, pytest-7.2.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/pylama-8.4.1, configfile: setup.cfg
plugins: pylama-8.4.1
collected 35 items

tests/test_config.py ...
tests/test_config_toml.py .
tests/test_context.py .......
tests/test_core.py .....
tests/test_linters.py ........F

========================================================================================= FAILURES ==========================================================================================
________________________________________________________________________________________ test_pylint ________________________________________________________________________________________

context = <function context.<locals>.fabric at 0x7f816cfd4ca0>

    def test_pylint(context):
        from pylama.lint import LINTERS

        pylint = LINTERS["pylint"]
        assert pylint

        ctx = context()
        pylint().run_check(ctx)
        errors = ctx.errors
        assert errors
        assert errors[0].number
        assert errors[0].col == 1
        assert not errors[0].message.startswith(errors[0].number)

        # Test immutable params
        ctx = context()
        pylint().run_check(ctx)
        assert ctx.errors
        assert not ctx.linters_params

        ctx = context(args="--pylint-confidence=HIGH --ignore=C")
        pylint().run_check(ctx)
>       assert not ctx.errors
E       assert not [<Error:22:9: R1705 Unnecessary "elif" after "return", remove the leading "el" from "elif">, <Error:23:13: R1705 Unnecessary "elif" after "return", remove the leading "el" from "elif">]
E        +  where [<Error:22:9: R1705 Unnecessary "elif" after "return", remove the leading "el" from "elif">, <Error:23:13: R1705 Unnecessary "elif" after "return", remove the leading "el" from "elif">] = <pylama.context.RunContext object at 0x7f816c61a5e0>.errors

tests/test_linters.py:177: AssertionError
================================================================================== short test summary info ==================================================================================
FAILED tests/test_linters.py::test_pylint - assert not [<Error:22:9: R1705 Unnecessary "elif" after "return", remove the leading "el" from "elif">, <Error:23:13: R1705 Unnecessary "elif" after "return", remove the leading "el" f...
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=============================================================================== 1 failed, 24 passed in 6.62s ================================================================================

Here is list of installed modules in build env

Package                       Version
----------------------------- -----------------
alabaster                     0.7.13
astroid                       2.14.2
attrs                         22.2.0
Babel                         2.12.1
build                         0.10.0
charset-normalizer            3.1.0
colorama                      0.4.6
dill                          0.3.5.1
distro                        1.8.0
docutils                      0.19
eradicate                     2.1.0
exceptiongroup                1.0.0
future                        0.18.3
gpg                           1.18.0-unknown
idna                          3.4
imagesize                     1.4.1
importlib-metadata            6.0.0
iniconfig                     2.0.0
isort                         5.11.2
Jinja2                        3.1.2
lazy-object-proxy             1.9.0
libcomps                      0.1.19
mando                         0.7.0
MarkupSafe                    2.1.2
mccabe                        0.7.0
mypy                          1.0.1
mypy-extensions               0.4.3
packaging                     23.0
pip                           22.3.1
platformdirs                  2.6.0
pluggy                        1.0.0
pycodestyle                   2.9.1
pydocstyle                    6.1.1
pyflakes                      2.5.0
Pygments                      2.14.0
pylint                        2.16.1
pyproject_hooks               1.0.0
pytest                        7.2.2
python-dateutil               2.8.2
pytz                          2022.4
radon                         5.1.0
requests                      2.28.2
rpm                           4.17.0
setuptools                    65.6.3
six                           1.16.0
snowballstemmer               2.2.0
Sphinx                        6.1.3
sphinx-copybutton             0.5.1
sphinxcontrib-applehelp       1.0.4
sphinxcontrib-devhelp         1.0.2.dev20230202
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1.dev20230128
sphinxcontrib-qthelp          1.0.3.dev20230128
sphinxcontrib-serializinghtml 1.1.5
toml                          0.10.2
tomli                         2.0.1
tomlkit                       0.11.6
typing_extensions             4.4.0
urllib3                       1.26.12
wheel                         0.38.4
wrapt                         1.14.1
zipp                          3.15.0
stanislavlevin added a commit to stanislavlevin/pylama that referenced this issue May 16, 2023
@stanislavlevin stanislavlevin linked a pull request May 16, 2023 that will close this issue
@kloczek
Copy link
Author

kloczek commented Jul 4, 2023

I've tested 2093ce0 and pytest is failing in new place

========================================================================================= FAILURES ==========================================================================================
________________________________________________________________________________________ test_quotes ________________________________________________________________________________________

source = '#!/usr/bin/env python\n# coding: utf-8\n# (c) 2005 Divmod, Inc.  See LICENSE file for details\n\n\n# commented code\n...e expected\'\n\n    def bad_method(self):  # type: () -> None\n        """Return type mismatch."""\n        return 1\n'

    def test_quotes(source):
        from pylama.lint import LINTERS, Linter

>       quotes = LINTERS["quotes"]
E       KeyError: 'quotes'

tests/test_linters.py:198: KeyError
================================================================================== short test summary info ==================================================================================
FAILED tests/test_linters.py::test_quotes - KeyError: 'quotes'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
=============================================================================== 1 failed, 25 passed in 7.12s ================================================================================

and after --deselect tests/test_linters.py::test_quotes it fails in:

========================================================================================= FAILURES ==========================================================================================
_______________________________________________________________________________________ test_vulture ________________________________________________________________________________________

context = <function context.<locals>.fabric at 0x7f8307cd4700>

    def test_vulture(context):
        from pylama.lint import LINTERS

>       vulture = LINTERS["vulture"]
E       KeyError: 'vulture'

tests/test_linters.py:209: KeyError
================================================================================== short test summary info ==================================================================================
FAILED tests/test_linters.py::test_vulture - KeyError: 'vulture'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
======================================================================== 1 failed, 25 passed, 1 deselected in 7.07s =========================================================================

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant