jaedb / Iris

Discover, explore and manage your music library across multiple sources with this beautiful web-based interface. Iris is a Mopidy frontend extension.
Apache License 2.0
1.13k stars 131 forks source link

Version 3.69.0 isn't published on PyPi and Docker Hub cause failing tests #931

Closed svanrossem closed 10 months ago

svanrossem commented 11 months ago

Iris version

3.69.0

Operating system(s) affected

Browser(s) affected

What happened?

See https://github.com/jaedb/Iris/actions/runs/6506105033/job/17671008009

Logs

py37: install_deps> python -I -m pip install '.[test]'
.pkg: install_requires> python -I -m pip install 'setuptools>=30.3.0' wheel
.pkg: _optional_hooks> python /__t/Python/3.7.17/x64/lib/python3.7/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_sdist> python /__t/Python/3.7.17/x64/lib/python3.7/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: get_requires_for_build_wheel> python /__t/Python/3.7.17/x64/lib/python3.7/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: install_requires_for_build_wheel> python -I -m pip install wheel
.pkg: freeze> python -m pip freeze --all
.pkg: pip==23.2.1,setuptools==68.0.0,wheel==0.41.2
.pkg: prepare_metadata_for_build_wheel> python /__t/Python/3.7.17/x64/lib/python3.7/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
.pkg: build_sdist> python /__t/Python/3.7.17/x64/lib/python3.7/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
py37: install_package_deps> python -I -m pip install 'Mopidy>=3.0' 'Pykka>=2.0.1' setuptools
py37: install_package> python -I -m pip install --force-reinstall --no-deps /__w/Iris/Iris/.tox/.tmp/package/1/Mopidy-Iris-3.69.0.tar.gz
py37: freeze> python -m pip freeze --all
py37: cachetools==5.3.1,certifi==2023.7.22,chardet==5.2.0,charset-normalizer==3.3.0,colorama==0.4.6,coverage==7.2.7,distlib==0.3.7,exceptiongroup==1.1.3,filelock==3.12.2,idna==3.4,importlib-metadata==6.7.0,iniconfig==2.0.0,Mopidy==3.4.1,Mopidy-Iris @ file:///__w/Iris/Iris/.tox/.tmp/package/1/Mopidy-Iris-3.69.0.tar.gz#sha256=31b2c305af3b1cbf3c1ac44c57982cfa400aeb3bacf1337b68225ea488d9f83e,packaging==23.2,pip==23.2.1,platformdirs==3.11.0,pluggy==1.2.0,pycairo==1.23.0,PyGObject==3.44.2,pykka==3.1.1,pyproject-api==1.5.3,pytest==7.4.2,pytest-cov==4.1.0,requests==2.31.0,setuptools==68.0.0,tomli==2.0.1,tornado==6.2,tox==4.8.0,typing_extensions==4.7.1,urllib3==2.0.6,virtualenv==20.24.5,wheel==0.41.2,zipp==3.15.0
py37: commands[0]> python -m pytest --basetemp=/__w/Iris/Iris/.tox/py37/tmp --cov=mopidy_iris --cov-report=term-missing --cov-report=xml
============================= test session starts ==============================
platform linux -- Python 3.7.17, pytest-7.4.2, pluggy-1.2.0
cachedir: .tox/py37/.pytest_cache
rootdir: /__w/Iris/Iris
configfile: setup.cfg
plugins: cov-4.1.0
collected 16 items

__tests__/test_extension.py ..                                           [ 12%]
__tests__/test_handlers.py ......                                        [ 50%]
__tests__/test_system.py .F....ss                                        [100%]

=================================== FAILURES ===================================
_________________________________ test_can_run _________________________________

    def test_can_run():
        iris_system = IrisSystemThread("foo", None, None)
        iris_system._USE_SUDO = False
>       assert iris_system.can_run() is True

__tests__/test_system.py:16: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <IrisSystemThread(Thread-4, initial)>, args = (), kwargs = {}
command_bytes = b'/__w/Iris/Iris/mopidy_iris/system.sh check'
process = <subprocess.Popen object at 0x7f1e4862ec90>, result = b''
error = b"/__w/Iris/Iris/mopidy_iris/system.sh: line 35: syntax error near unexpected token `else'\n/__w/Iris/Iris/mopidy_iris/system.sh: line 35: `\telse'\n"
exitCode = 2

    def can_run(self, *args, **kwargs):
        # Attempt an empty call to our system file
        command_bytes = b" ".join(
            self.get_command("check", non_interactive=True)
        )
        process = subprocess.Popen(
            command_bytes,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            shell=True,
        )
        result, error = process.communicate()
        exitCode = process.wait()

        # Some kind of failure, so we can't run any commands this way
        if exitCode > 0:
>           raise IrisSystemPermissionError(self.script_path)
E           mopidy_iris.system.IrisSystemPermissionError: Password-less access to file:///__w/Iris/Iris/mopidy_iris/system.sh was refused. Check your /etc/sudoers file.

mopidy_iris/system.py:112: IrisSystemPermissionError
------------------------------ Captured log call -------------------------------
ERROR    mopidy_iris.system:system.py:23 Password-less access to file:///__w/Iris/Iris/mopidy_iris/system.sh was refused. Check your /etc/sudoers file.
=============================== warnings summary ===============================
.tox/py37/lib/python3.7/site-packages/mopidy/__init__.py:5
  /__w/Iris/Iris/.tox/py37/lib/python3.7/site-packages/mopidy/__init__.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
    import pkg_resources

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

---------- coverage: platform linux, python 3.7.17-final-0 -----------
Name                      Stmts   Miss  Cover   Missing
-------------------------------------------------------
mopidy_iris/__init__.py      36     22    39%   26-40, 43-51, 58-63
mopidy_iris/core.py         586    477    19%   22, 48, 51-52, 58-62, 68, 77-88, 98-105, 114, 128-149, 157-209, 218, 228-236, 244, 257-267, 270-282, 290-321, 324-335, 338-370, 379-416, 420-451, 458-470, 473-478, 486-499, 502-510, 517-529, 532-539, 553-559, 562-641, 644-666, 669-727, 730-749, 752-772, 782-788, 791-815, 818-829, 838-845, 848-868, 875, 878, 885, 888, 895, 898, 901-1001, 1013-1027, 1041-1049, 1073-1085, 1091-1094, 1106-1156, 1163-1216, 1232, 1237-1242
mopidy_iris/frontend.py      21      9    57%   13-17, 20, 23, 26-31, 36-37
mopidy_iris/handlers.py     135     79    41%   21-24, 27, 32-48, 51-140, 143, 150-174, 196-197, 240-286, 309-319, 338-342, 345
mopidy_iris/mem.py            2      0   100%
mopidy_iris/system.py        62     16    74%   42, 47, 67-87
-------------------------------------------------------
TOTAL                       842    603    28%
Coverage XML written to file coverage.xml

=========================== short test summary info ============================
FAILED __tests__/test_system.py::test_can_run - mopidy_iris.system.IrisSystem...
============== 1 failed, 13 passed, 2 skipped, 1 warning in 0.95s ==============
py37: exit 1 (1.94 seconds) /__w/Iris/Iris> python -m pytest --basetemp=/__w/Iris/Iris/.tox/py37/tmp --cov=mopidy_iris --cov-report=term-missing --cov-report=xml pid=540
.pkg: _exit> python /__t/Python/3.7.17/x64/lib/python3.7/site-packages/pyproject_api/_backend.py True setuptools.build_meta __legacy__
  py37: FAIL code 1 (15.84=setup[13.90]+cmd[1.94] seconds)
  evaluation failed :( (16.10 seconds)
svanrossem commented 11 months ago

Will be fixed within https://github.com/jaedb/Iris/pull/922

jaedb commented 10 months ago

Resolved in #922 and v3.69.1