You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I know it's a bit early but Gentoo ended up needing it because of pdm-metadata (sigh). I'll submit a PR to future-proof the test suite. Hope you don't mind.
FWICS it's roughly a mismatch of exception message, and use of comma instead of space in Keywords (apparently the former is correct).
============================================================== FAILURES ===============================================================
________________________________________________________ test_missing_version _________________________________________________________
package_missing_version = PosixPath('/tmp/meson-python/tests/packages/missing-version')
deftest_missing_version(package_missing_version):
pyproject = {'project': {
'name': 'missing-version',
}}
with pytest.raises(pyproject_metadata.ConfigurationError, match='Required "project.version" field is missing'):
> Metadata.from_pyproject(pyproject, pathlib.Path())
/tmp/meson-python/tests/test_metadata.py:52:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/tmp/meson-python/mesonpy/__init__.py:256: in from_pyproject
metadata =super().from_pyproject(data, project_dir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class 'mesonpy.Metadata'>, data = {'project': {'name': 'missing-version'}}, project_dir = PosixPath('.')
metadata_version = None
@classmethoddeffrom_pyproject(
cls,
data: Mapping[str, Any],
project_dir: str| os.PathLike[str] = os.path.curdir,
metadata_version: str|None=None,
) -> Self:
fetcher = DataFetcher(data)
project_dir = pathlib.Path(project_dir)
if'project'notin fetcher:
msg ='Section "project" missing in pyproject.toml'raise ConfigurationError(msg)
dynamic = fetcher.get_list('project.dynamic')
if'name'in dynamic:
msg ='Unsupported field "name" in "project.dynamic"'raise ConfigurationError(msg)
for field in dynamic:
if field in data['project']:
msg =f'Field "project.{field}" declared as dynamic in "project.dynamic" but is defined'raise ConfigurationError(msg)
name = fetcher.get_str('project.name')
ifnot name:
msg ='Field "project.name" missing'raise ConfigurationError(msg)
version_string = fetcher.get_str('project.version')
requires_python_string = fetcher.get_str('project.requires-python')
version = packaging.version.Version(version_string) if version_string elseNoneif version isNoneand'version'notin dynamic:
msg ='Field "project.version" missing and "version" not specified in "project.dynamic"'
> raise ConfigurationError(msg)
E pyproject_metadata.ConfigurationError: Field "project.version" missing and "version" not specified in "project.dynamic"
/tmp/meson-python/.venv/lib/pypy3.10/site-packages/pyproject_metadata/__init__.py:242: ConfigurationError
During handling of the above exception, another exception occurred:
package_missing_version = PosixPath('/tmp/meson-python/tests/packages/missing-version')
deftest_missing_version(package_missing_version):
pyproject = {'project': {
'name': 'missing-version',
}}
> with pytest.raises(pyproject_metadata.ConfigurationError, match='Required "project.version" field is missing'):
E AssertionError: Regex pattern did not match.
E Regex: 'Required "project.version" field is missing'
E Input: 'Field "project.version" missing and "version" not specified in "project.dynamic"'
/tmp/meson-python/tests/test_metadata.py:51: AssertionError
_____________________________________________________________ test_pep621 _____________________________________________________________
sdist_full_metadata = PosixPath('/tmp/pytest-of-mgorny/pytest-4/test0/mesonpy-test-rsnkxc7e/full_metadata-1.2.3.tar.gz')
deftest_pep621(sdist_full_metadata):
with tarfile.open(sdist_full_metadata, 'r:gz') as sdist:
sdist_pkg_info = sdist.extractfile('full_metadata-1.2.3/PKG-INFO').read().decode()
> assert sdist_pkg_info == textwrap.dedent('''\
Metadata-Version: 2.1
Name: full-metadata
Version: 1.2.3
Summary: Some package withall of the PEP621 metadata
Keywords: full metadata
Home-page: https://example.com
Author: Jane Doe
Author-Email: Unknown <jhon.doe@example.com>
Maintainer-Email: Jane Doe <jane.doe@example.com>
License: some license
Classifier: Development Status :: 4- Beta
Classifier: Programming Language :: Python
Project-URL: Homepage, https://example.com
Project-URL: Documentation, https://readthedocs.org
Project-URL: Repository, https://github.com/mesonbuild/meson-python
Project-URL: Changelog, https://github.com/mesonbuild/meson-python/blob/master/CHANGELOG.rst
Requires-Python: >=3.7
Requires-Dist: a
Requires-Dist: b>1
Requires-Dist: c>2; os_name !="nt"
Requires-Dist: d<3; extra =="test"
Requires-Dist: e[all]; extra =="test"
Provides-Extra: test
Description-Content-Type: text/markdown
<!--SPDX-FileCopyrightText: 2021 The meson-python developers
SPDX-License-Identifier: MIT--># full-metadata
An example package withall of the PEP621 metadata!
''')
E AssertionError: assert 'Metadata-Ver...1 metadata!\n' == 'Metadata-Ver...1 metadata!\n'
E
E Skipping 116 identical leading characters in diff, use -v to show
E Skipping 906 identical trailing characters in diff, use -v to show
E - ords: full metadata
E ? ^
E + ords: full,metadata
E ? ^
tests/test_sdist.py:33: AssertionError
-------------------------------------------------------- Captured stdout setup --------------------------------------------------------
Initialized empty Git repository in /tmp/meson-python/tests/packages/full-metadata/.git/
+ meson setup /tmp/meson-python/tests/packages/full-metadata /tmp/meson-python/tests/packages/full-metadata/.mesonpy-777vl431 -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md --native-file=/tmp/meson-python/tests/packages/full-metadata/.mesonpy-777vl431/meson-python-native-file.ini
The Meson build system
Version: 1.4.0
Source dir: /tmp/meson-python/tests/packages/full-metadata
Build dir: /tmp/meson-python/tests/packages/full-metadata/.mesonpy-777vl431
Build type: native build
Project name: full-metadata
Project version: 1.0.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Build targets in project: 0
full-metadata 1.0.0
User defined options
Native files: /tmp/meson-python/tests/packages/full-metadata/.mesonpy-777vl431/meson-python-native-file.ini
buildtype : release
b_ndebug : if-release
b_vscrt : md
Found ninja-1.12.0 at /usr/bin/ninja
+ meson dist --allow-dirty --no-tests --formats gztar
Created /tmp/meson-python/tests/packages/full-metadata/.mesonpy-777vl431/meson-dist/full-metadata-1.0.0.tar.gz
The text was updated successfully, but these errors were encountered:
I know it's a bit early but Gentoo ended up needing it because of pdm-metadata (sigh). I'll submit a PR to future-proof the test suite. Hope you don't mind.
FWICS it's roughly a mismatch of exception message, and use of comma instead of space in
Keywords
(apparently the former is correct).The text was updated successfully, but these errors were encountered: