@@ -42,6 +42,7 @@ def test_pep621_fields(self) -> None:
4242 self .assertEqual ("['farm', 'animals']" , rv .keywords )
4343 self .assertEqual (None , rv .long_description_content_type )
4444 self .assertEqual ("README.md" , rv .description )
45+ self .assertEqual (">=3.7" , rv .requires_python )
4546
4647 def test_pep621_extras (self ) -> None :
4748 with tempfile .TemporaryDirectory () as d :
@@ -68,6 +69,32 @@ def test_pep621_extras(self) -> None:
6869 )
6970 self .assertEqual (frozenset ({"dev" , "marker" }), rv .provides_extra )
7071
72+ def test_poetry_fields (self ) -> None :
73+ with tempfile .TemporaryDirectory () as d :
74+ Path (d , "pyproject.toml" ).write_text (
75+ """\
76+ [tool.poetry]
77+ name = "somepkg"
78+ version = "1.2.30"
79+ description = "Example Summary"
80+ authors = ["chicken <[email protected] >"] 81+ readme = "README.md"
82+ keywords = ["farm", "animals"]
83+ homepage = "https://example.com"
84+ """
85+ )
86+ rv = basic_metadata_from_source_checkout (Path (d ))
87+ self .assertEqual ("somepkg" , rv .name )
88+ self .assertEqual ("1.2.30" , rv .version )
89+ self .assertEqual ("Example Summary" , rv .summary )
90+ self .assertEqual ("https://example.com" , rv .url )
91+ self .assertEqual ({}, rv .project_urls )
92+ self .
assertEqual (
"['chicken <[email protected] >']" ,
rv .
author )
93+ self .assertEqual ("['farm', 'animals']" , rv .keywords )
94+ self .assertEqual (None , rv .long_description_content_type )
95+ self .assertEqual ("README.md" , rv .description )
96+ self .assertEqual (None , rv .requires_python )
97+
7198 def test_poetry_full (self ) -> None :
7299 with tempfile .TemporaryDirectory () as d :
73100 Path (d , "pyproject.toml" ).write_text (
@@ -190,3 +217,33 @@ def test_setuptools_extras(self) -> None:
190217 frozenset ({"dev" , "marker" }),
191218 rv .provides_extra ,
192219 )
220+
221+ def test_setuptools_cfg_fields (self ) -> None :
222+ with tempfile .TemporaryDirectory () as d :
223+ Path (d , "setup.cfg" ).write_text (
224+ """\
225+ [metadata]
226+ name = somepkg
227+ description = Example Summary
228+ long_description = file: README.md
229+ long_description_content_type = text/markdown
230+ license = MIT
231+ url = https://example.com
232+ author = chicken
233+ 234+
235+ [options]
236+ python_requires = >=3.7
237+ """
238+ )
239+ rv = basic_metadata_from_source_checkout (Path (d ))
240+ self .assertEqual ("somepkg" , rv .name )
241+ self .assertEqual (None , rv .version )
242+ self .assertEqual ("Example Summary" , rv .summary )
243+ self .assertEqual ("https://example.com" , rv .url )
244+ self .assertEqual ("chicken" , rv .author )
245+ self .
assertEqual (
"[email protected] " ,
rv .
author_email )
246+ self .assertEqual (None , rv .keywords )
247+ self .assertEqual ("file: README.md" , rv .description )
248+ self .assertEqual (">=3.7" , rv .requires_python )
249+ self .assertEqual ("text/markdown" , rv .long_description_content_type )
0 commit comments