Closed douglasdcm closed 1 year ago
this project uses poetry, so you just do poetry install
followed by poetry run pytest
to run the tests. the documentation is out of date so if you'd like to contribute to this project, that would be a good place to start.
Thank you @ojii for the quick answer. I need more help here, please. I was using python 3.6 as specified in Prerequisites page, but when I tried to use Poetry I got an error and checking its documentation I figured out that its minimum python version to it is 3.7.
OK, no problem, I installed python 3.11 to fix it. But, when I ran poetry install
I got another error. Check it bellow.
I tried to fix it by hand, but it doesn't work.
So, what is the correct python version I need to use to install the dependencies and run the tests?
$ poetry install
Creating virtualenv arsenic-zYWaoQb--py3.11 in /home/douglas/.cache/pypoetry/virtualenvs
Updating dependencies
Resolving dependencies... (2.7s)
Writing lock file
Package operations: 53 installs, 1 update, 0 removals
• Installing attrs (23.1.0)
• Installing certifi (2023.5.7)
• Installing charset-normalizer (3.1.0)
• Installing distlib (0.3.6)
• Installing filelock (3.12.0)
• Installing frozenlist (1.3.3)
• Installing idna (3.4)
• Installing iniconfig (2.0.0)
• Installing markupsafe (2.1.2)
• Installing multidict (6.0.4)
• Installing packaging (23.1)
• Installing platformdirs (3.5.1)
• Installing pluggy (1.0.0)
• Installing py (1.11.0)
• Installing toml (0.10.2)
• Updating setuptools (67.6.1 -> 67.7.2)
• Installing urllib3 (2.0.2)
• Installing aiosignal (1.3.1)
• Installing alabaster (0.7.13)
• Installing async-generator (1.10)
• Installing async-timeout (4.0.2)
• Installing babel (2.12.1)
• Installing cfgv (3.3.1)
• Installing click (8.1.3)
• Installing coverage (7.2.5)
• Installing docutils (0.19)
• Installing identify (2.5.24)
• Installing imagesize (1.4.1)
• Installing jinja2 (3.1.2)
• Installing mypy-extensions (1.0.0)
• Installing nodeenv (1.8.0)
• Installing pathspec (0.11.1)
• Installing pygments (2.15.1)
• Installing pytest (6.2.5)
• Installing pyyaml (6.0)
• Installing requests (2.30.0)
• Installing snowballstemmer (2.2.0)
• Installing sphinxcontrib-applehelp (1.0.2)
• Installing sphinxcontrib-devhelp (1.0.2)
• Installing sphinxcontrib-htmlhelp (2.0.0)
• Installing sphinxcontrib-jsmath (1.0.1)
• Installing sphinxcontrib-qthelp (1.0.3)
• Installing sphinxcontrib-serializinghtml (1.1.5)
• Installing virtualenv (20.23.0)
• Installing yarl (1.9.2)
• Installing aiohttp (3.8.4)
• Installing asyncio-extras (1.3.2)
• Installing black (22.12.0)
• Installing pillow (8.4.0): Failed
ChefBuildError
Backend subprocess exited when trying to invoke build_wheel
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageFilter.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/GifImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PSDraw.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PixarImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/_tkinter_finder.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/CurImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/EpsImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/SgiImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageFont.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/DcxImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/GimpPaletteFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageSequence.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/IcoImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/BdfFontFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/BufrStubImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageOps.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageStat.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PcxImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PyAccess.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/GribStubImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/FliImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/WmfImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/XpmImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/JpegImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/BmpImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PcdImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/MicImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageMode.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PngImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/__main__.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PalmImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/features.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageChops.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PdfImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ContainerIO.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/Jpeg2KImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageTk.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/TgaImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/_binary.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageEnhance.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageGrab.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageDraw.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/BlpImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageShow.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/Image.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PpmImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/GdImageFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageQt.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageDraw2.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/_version.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/TarIO.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/JpegPresets.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/MpegImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/SunImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/MpoImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImagePath.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/TiffTags.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageCms.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageMorph.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/IcnsImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/Hdf5StubImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PcfFontFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/TiffImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageTransform.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImagePalette.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/SpiderImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/XVThumbImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/GimpGradientFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/FitsStubImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/MspImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageColor.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ExifTags.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/GbrImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/FtexImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/FontFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PsdImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PaletteFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/XbmImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/_util.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImtImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/PdfParser.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/IptcImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/DdsImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/WalImageFile.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/McIdasImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/__init__.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageMath.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/ImageWin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/FpxImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
copying src/PIL/WebPImagePlugin.py -> build/lib.linux-x86_64-cpython-311/PIL
running egg_info
writing src/Pillow.egg-info/PKG-INFO
writing dependency_links to src/Pillow.egg-info/dependency_links.txt
writing top-level names to src/Pillow.egg-info/top_level.txt
reading manifest file 'src/Pillow.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*.c'
warning: no files found matching '*.h'
warning: no files found matching '*.sh'
warning: no previously-included files found matching '.appveyor.yml'
warning: no previously-included files found matching '.clang-format'
warning: no previously-included files found matching '.coveragerc'
warning: no previously-included files found matching '.editorconfig'
warning: no previously-included files found matching '.readthedocs.yml'
warning: no previously-included files found matching 'codecov.yml'
warning: no previously-included files matching '.git*' found anywhere in distribution
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*.so' found anywhere in distribution
no previously-included directories found matching '.ci'
adding license file 'LICENSE'
writing manifest file 'src/Pillow.egg-info/SOURCES.txt'
running build_ext
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html
Traceback (most recent call last):
File "<string>", line 978, in <module>
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
dist.run_commands()
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
self.run_command(cmd)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/dist.py", line 1244, in run_command
super().run_command(command)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 343, in run
self.run_command("build")
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
self.distribution.run_command(command)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/dist.py", line 1244, in run_command
super().run_command(command)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 131, in run
self.run_command(cmd_name)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
self.distribution.run_command(command)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/dist.py", line 1244, in run_command
super().run_command(command)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
cmd_obj.run()
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 84, in run
_build_ext.run(self)
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
self.build_extensions()
File "<string>", line 790, in build_extensions
RequiredDependencyException: jpeg
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/douglas/.local/share/pypoetry/venv/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/home/douglas/.local/share/pypoetry/venv/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/douglas/.local/share/pypoetry/venv/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/build_meta.py", line 416, in build_wheel
return self._build_with_temp_dir(['bdist_wheel'], '.whl',
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/build_meta.py", line 401, in _build_with_temp_dir
self.run_setup()
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/build_meta.py", line 488, in run_setup
self).run_setup(setup_script=setup_script)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/tmpbbxnzkc6/.venv/lib/python3.11/site-packages/setuptools/build_meta.py", line 338, in run_setup
exec(code, locals())
File "<string>", line 1037, in <module>
RequiredDependencyException:
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.
Please see the install instructions at:
https://pillow.readthedocs.io/en/latest/installation.html
at ~/.local/share/pypoetry/venv/lib/python3.11/site-packages/poetry/installation/chef.py:152 in _prepare
148│
149│ error = ChefBuildError("\n\n".join(message_parts))
150│
151│ if error is not None:
→ 152│ raise error from None
153│
154│ return path
155│
156│ def _prepare_sdist(self, archive: Path, destination: Path | None = None) -> Path:
Note: This error originates from the build backend, and is likely not a problem with poetry but with pillow (8.4.0) not supporting PEP 517 builds. You can verify this by running 'pip wheel --use-pep517 "pillow (==8.4.0)"'.
• Installing pre-commit (2.21.0)
• Installing pytest-asyncio (0.14.0)
• Installing pytest-cov (2.12.1)
• Installing sphinx (5.3.0)
• Installing structlog (20.2.0)
The headers or library files could not be found for jpeg, a required dependency when compiling Pillow from source.
you're missing some dependencies for Pillow. Make sure they're available or that there are pillow wheels available for your python version/platform
OK, thank you @ojii. Indeed, I installed python 3.11 because it was the latest one, but Pillow 8.1.0 requires python 3.6 to 3.9 as documented here, so I got the python 3.7 as it is the minimum common version for poetry and pillow. Now it worked
$ poetry install
Installing dependencies from lock file
Package operations: 61 installs, 0 updates, 0 removals
• Installing typing-extensions (4.5.0)
• Installing zipp (3.15.0)
• Installing importlib-metadata (6.6.0)
• Installing attrs (23.1.0)
• Installing certifi (2023.5.7)
• Installing charset-normalizer (3.1.0)
• Installing distlib (0.3.6)
• Installing filelock (3.12.0)
• Installing frozenlist (1.3.3)
• Installing idna (3.4)
• Installing iniconfig (2.0.0)
• Installing markupsafe (2.1.2)
• Installing multidict (6.0.4)
• Installing packaging (23.1)
• Installing platformdirs (3.5.1)
• Installing pluggy (1.0.0)
• Installing py (1.11.0)
• Installing pytz (2023.3)
• Installing setuptools (67.7.2)
• Installing toml (0.10.2)
• Installing urllib3 (2.0.2)
• Installing aiosignal (1.3.1)
• Installing alabaster (0.7.13)
• Installing async-generator (1.10)
• Installing async-timeout (4.0.2)
• Installing asynctest (0.13.0)
• Installing babel (2.12.1)
• Installing cfgv (3.3.1)
• Installing click (8.1.3)
• Installing coverage (7.2.5)
• Installing docutils (0.19)
• Installing identify (2.5.24)
• Installing imagesize (1.4.1)
• Installing jinja2 (3.1.2)
• Installing mypy-extensions (1.0.0)
• Installing nodeenv (1.8.0)
• Installing pathspec (0.11.1)
• Installing pygments (2.15.1)
• Installing pytest (6.2.5)
• Installing requests (2.30.0)
• Installing pyyaml (6.0)
• Installing snowballstemmer (2.2.0)
• Installing sphinxcontrib-applehelp (1.0.2)
• Installing sphinxcontrib-devhelp (1.0.2)
• Installing sphinxcontrib-htmlhelp (2.0.0)
• Installing sphinxcontrib-jsmath (1.0.1)
• Installing sphinxcontrib-qthelp (1.0.3)
• Installing sphinxcontrib-serializinghtml (1.1.5)
• Installing tomli (2.0.1)
• Installing typed-ast (1.5.4)
• Installing virtualenv (20.23.0)
• Installing yarl (1.9.2)
• Installing aiohttp (3.8.4)
• Installing asyncio-extras (1.3.2)
• Installing black (22.12.0)
• Installing pillow (8.4.0)
• Installing pre-commit (2.21.0)
• Installing sphinx (5.3.0)
• Installing pytest-cov (2.12.1)
• Installing pytest-asyncio (0.14.0)
• Installing structlog (20.2.0)
Installing the current project: arsenic (21.8)
(arsenic-py3.11) douglas@douglas:~/repo/arsenic$ poetry run pytest
============================================================ test session starts =============================================================
platform linux -- Python 3.7.0, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/douglas/repo/arsenic, configfile: pytest.ini, testpaths: tests
plugins: asyncio-0.14.0, cov-2.12.1
collected 94 items
tests/test_actions.py .. [ 2%]
tests/test_docs_build.py . [ 3%]
tests/test_real_browsers.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 84%]
tests/test_services.py ... [ 87%]
tests/test_subprocess.py .... [ 91%]
tests/test_utils.py ........ [100%]
============================================================== warnings summary ==============================================================
tests/test_services.py::test_geckodriver_version_ok[0.17-True-True]
tests/test_services.py::test_geckodriver_version_ok[0.16-True-False]
/home/douglas/repo/arsenic/src/arsenic/services.py:95: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
version = StrictVersion(version_str)
tests/test_services.py::test_geckodriver_version_ok[0.17-True-True]
tests/test_services.py::test_geckodriver_version_ok[0.16-True-False]
/home/douglas/repo/arsenic/src/arsenic/services.py:96: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if version < StrictVersion("0.16.1"):
-- Docs: https://docs.pytest.org/en/stable/warnings.html
================================================= 18 passed, 76 skipped, 4 warnings in 5.97s =================================================
I'll update the documentation with these information
Hi, congratulations for this project. I was trying to play around with it, but I could find the test/requirements.txt file. I'm following the steps in Testing session. I installed and ran pytest manually so I could figure out the following libraries are required until now:
Can I add the requirement.txt file? I'd love to contribute to this project
Also, I couldn't run the command bellow due to this error, hence I'm not able to run the tests using pytest: