@@ -217,6 +217,21 @@ def test_all_fields(script: PipTestEnvironment) -> None:
217217    """ 
218218    Test that all the fields are present 
219219    """ 
220+     # future-compat: once pip adopts PEP 639 in pyproject.toml and 
221+     # its build backend produces metadata 2.4 or greater, 
222+     # it will display "License-Expression" rather than License 
223+     verbose  =  script .pip ("show" , "--verbose" , "pip" ).stdout 
224+     match  =  re .search (r"Metadata-Version:\s(\d+\.\d+)" , verbose )
225+     if  match  is  not None :
226+         metadata_version  =  match .group (1 )
227+         metadata_version_tuple  =  tuple (map (int , metadata_version .split ("." )))
228+         if  metadata_version_tuple  >=  (2 , 4 ) and  "License-Expression"  in  verbose :
229+             license_str  =  "License-Expression" 
230+         else :
231+             license_str  =  "License" 
232+     else :
233+         license_str  =  "License" 
234+ 
220235    result  =  script .pip ("show" , "pip" )
221236    lines  =  result .stdout .splitlines ()
222237    expected  =  {
@@ -226,7 +241,7 @@ def test_all_fields(script: PipTestEnvironment) -> None:
226241        "Home-page" ,
227242        "Author" ,
228243        "Author-email" ,
229-         "License "
244+         f" { license_str } 
230245        "Location" ,
231246        "Editable project location" ,
232247        "Requires" ,
@@ -410,3 +425,29 @@ def test_show_populate_homepage_from_project_urls(
410425    result  =  script .pip ("show" , "simple" , cwd = pkg_path )
411426    lines  =  result .stdout .splitlines ()
412427    assert  "Home-page: https://example.com"  in  lines 
428+ 
429+ 
430+ def  test_show_license_expression (script : PipTestEnvironment , data : TestData ) ->  None :
431+     """ 
432+     Show License-Expression if present in metadata >= 2.4. 
433+     """ 
434+     wheel_file  =  data .packages .joinpath ("license.dist-0.1-py2.py3-none-any.whl" )
435+     script .pip ("install" , "--no-index" , wheel_file )
436+     result  =  script .pip ("show" , "license.dist" )
437+     lines  =  result .stdout .splitlines ()
438+     assert  "License-Expression: MIT AND MIT-0"  in  lines 
439+     assert  "License: The legacy license declaration"  not  in lines 
440+ 
441+ 
442+ def  test_show_license_for_metadata_24 (
443+     script : PipTestEnvironment , data : TestData 
444+ ) ->  None :
445+     """ 
446+     Show License if License-Expression is not there for metadata >= 2.4. 
447+     """ 
448+     wheel_file  =  data .packages .joinpath ("license.dist-0.2-py2.py3-none-any.whl" )
449+     script .pip ("install" , "--no-index" , wheel_file )
450+     result  =  script .pip ("show" , "license.dist" )
451+     lines  =  result .stdout .splitlines ()
452+     assert  "License-Expression: "  not  in lines 
453+     assert  "License: The legacy license declaration"  in  lines 
0 commit comments