from wheel.metadata import pkginfo_to_metadata def test_pkginfo_to_metadata(tmpdir): expected_metadata = [ ("Metadata-Version", "2.1"), ("Name", "spam"), ("Version", "0.1"), ("Requires-Dist", "pip @ https://github.com/pypa/pip/archive/1.3.1.zip"), ("Requires-Dist", 'pywin32 ; sys_platform=="win32"'), ("Requires-Dist", 'foo @ http://host/foo.zip ; sys_platform=="win32"'), ("Provides-Extra", "signatures"), ( "Requires-Dist", "pyxdg ; (sys_platform!=\"win32\") and extra == 'signatures'", ), ("Provides-Extra", "empty_extra"), ("Provides-Extra", "extra"), ("Requires-Dist", "bar @ http://host/bar.zip ; extra == 'extra'"), ("Provides-Extra", "faster-signatures"), ("Requires-Dist", "ed25519ll ; extra == 'faster-signatures'"), ("Provides-Extra", "rest"), ("Requires-Dist", "docutils (>=0.8) ; extra == 'rest'"), ("Requires-Dist", "keyring ; extra == 'signatures'"), ("Requires-Dist", "keyrings.alt ; extra == 'signatures'"), ("Provides-Extra", "test"), ("Requires-Dist", "pytest (>=3.0.0) ; extra == 'test'"), ("Requires-Dist", "pytest-cov ; extra == 'test'"), ] pkg_info = tmpdir.join("PKG-INFO") pkg_info.write( """\ Metadata-Version: 0.0 Name: spam Version: 0.1 Provides-Extra: empty+extra Provides-Extra: test Provides-Extra: reST Provides-Extra: signatures Provides-Extra: Signatures Provides-Extra: faster-signatures""" ) egg_info_dir = tmpdir.ensure_dir("test.egg-info") egg_info_dir.join("requires.txt").write( """\ pip@https://github.com/pypa/pip/archive/1.3.1.zip [extra] bar @ http://host/bar.zip [empty+extra] [:sys_platform=="win32"] pywin32 foo @http://host/foo.zip [faster-signatures] ed25519ll [reST] docutils>=0.8 [signatures] keyring keyrings.alt [Signatures:sys_platform!="win32"] pyxdg [test] pytest>=3.0.0 pytest-cov""" ) message = pkginfo_to_metadata( egg_info_path=str(egg_info_dir), pkginfo_path=str(pkg_info) ) assert message.items() == expected_metadata