@@ -533,6 +533,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
533533 "release_date" : "1994-01-26" ,
534534 "is_released" : True ,
535535 "is_supported" : False ,
536+ "eol_date" : None ,
537+ "is_eol" : True ,
536538 "subversions" : ["1.0" , "1.1" , "1.2" , "1.3" , "1.4" , "1.5" , "1.6" ],
537539 },
538540 (
@@ -541,6 +543,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
541543 "Release-Date: 1994-01-26\n "
542544 "Is-Released: yes\n "
543545 "Is-Supported: no\n "
546+ "EOL-Date: UNKNOWN\n "
547+ "Is-EOL: yes\n "
544548 "Subversions: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6\n "
545549 ),
546550 ),
@@ -553,6 +557,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
553557 "release_date" : "1994-01-26" ,
554558 "is_released" : True ,
555559 "is_supported" : False ,
560+ "eol_date" : None ,
561+ "is_eol" : True ,
556562 "subversions" : ["1.0" , "1.1" , "1.2" , "1.3" , "1.4" , "1.5" , "1.6" ],
557563 },
558564 (
@@ -561,6 +567,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
561567 "Release-Date: 1994-01-26\n "
562568 "Is-Released: yes\n "
563569 "Is-Supported: no\n "
570+ "EOL-Date: UNKNOWN\n "
571+ "Is-EOL: yes\n "
564572 "Subversions: 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6\n "
565573 ),
566574 ),
@@ -573,6 +581,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
573581 "release_date" : "1994-01-26" ,
574582 "is_released" : True ,
575583 "is_supported" : False ,
584+ "eol_date" : None ,
585+ "is_eol" : True ,
576586 "subversions" : [],
577587 },
578588 (
@@ -581,6 +591,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
581591 "Release-Date: 1994-01-26\n "
582592 "Is-Released: yes\n "
583593 "Is-Supported: no\n "
594+ "EOL-Date: UNKNOWN\n "
595+ "Is-EOL: yes\n "
584596 "Subversions: \n "
585597 ),
586598 ),
@@ -593,6 +605,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
593605 "release_date" : "1994-01-26" ,
594606 "is_released" : True ,
595607 "is_supported" : False ,
608+ "eol_date" : None ,
609+ "is_eol" : True ,
596610 "subversions" : [],
597611 },
598612 (
@@ -601,6 +615,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
601615 "Release-Date: 1994-01-26\n "
602616 "Is-Released: yes\n "
603617 "Is-Supported: no\n "
618+ "EOL-Date: UNKNOWN\n "
619+ "Is-EOL: yes\n "
604620 "Subversions: \n "
605621 ),
606622 ),
@@ -613,6 +629,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
613629 "release_date" : "2000-10-16" ,
614630 "is_released" : True ,
615631 "is_supported" : True ,
632+ "eol_date" : None ,
633+ "is_eol" : False ,
616634 "subversions" : ["2.0" , "2.1" , "2.2" , "2.3" , "2.4" , "2.5" , "2.6" , "2.7" ],
617635 },
618636 (
@@ -621,6 +639,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
621639 "Release-Date: 2000-10-16\n "
622640 "Is-Released: yes\n "
623641 "Is-Supported: yes\n "
642+ "EOL-Date: UNKNOWN\n "
643+ "Is-EOL: no\n "
624644 "Subversions: 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7\n "
625645 ),
626646 ),
@@ -633,6 +653,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
633653 "release_date" : "2000-10-16" ,
634654 "is_released" : True ,
635655 "is_supported" : True ,
656+ "eol_date" : None ,
657+ "is_eol" : False ,
636658 "subversions" : ["2.0" , "2.1" , "2.2" , "2.3" , "2.4" , "2.5" , "2.6" , "2.7" ],
637659 },
638660 (
@@ -641,6 +663,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
641663 "Release-Date: 2000-10-16\n "
642664 "Is-Released: yes\n "
643665 "Is-Supported: yes\n "
666+ "EOL-Date: UNKNOWN\n "
667+ "Is-EOL: no\n "
644668 "Subversions: 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7\n "
645669 ),
646670 ),
@@ -653,6 +677,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
653677 "release_date" : "2000-10-16" ,
654678 "is_released" : True ,
655679 "is_supported" : True ,
680+ "eol_date" : None ,
681+ "is_eol" : False ,
656682 "subversions" : ["2.7" ],
657683 },
658684 (
@@ -661,6 +687,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
661687 "Release-Date: 2000-10-16\n "
662688 "Is-Released: yes\n "
663689 "Is-Supported: yes\n "
690+ "EOL-Date: UNKNOWN\n "
691+ "Is-EOL: no\n "
664692 "Subversions: 2.7\n "
665693 ),
666694 ),
@@ -673,6 +701,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
673701 "release_date" : "2000-10-16" ,
674702 "is_released" : True ,
675703 "is_supported" : True ,
704+ "eol_date" : None ,
705+ "is_eol" : False ,
676706 "subversions" : ["2.7" ],
677707 },
678708 (
@@ -681,6 +711,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
681711 "Release-Date: 2000-10-16\n "
682712 "Is-Released: yes\n "
683713 "Is-Supported: yes\n "
714+ "EOL-Date: UNKNOWN\n "
715+ "Is-EOL: no\n "
684716 "Subversions: 2.7\n "
685717 ),
686718 ),
@@ -889,6 +921,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
889921 "release_date" : "2008-12-03" ,
890922 "is_released" : True ,
891923 "is_supported" : True ,
924+ "eol_date" : None ,
925+ "is_eol" : False ,
892926 "subversions" : ["3.0" , "3.1" , "3.2" , "3.3" , "3.4" , "3.5" , "3.6" , "3.7" ],
893927 },
894928 (
@@ -897,6 +931,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
897931 "Release-Date: 2008-12-03\n "
898932 "Is-Released: yes\n "
899933 "Is-Supported: yes\n "
934+ "EOL-Date: UNKNOWN\n "
935+ "Is-EOL: no\n "
900936 "Subversions: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7\n "
901937 ),
902938 ),
@@ -909,6 +945,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
909945 "release_date" : "2008-12-03" ,
910946 "is_released" : True ,
911947 "is_supported" : True ,
948+ "eol_date" : None ,
949+ "is_eol" : False ,
912950 "subversions" : [
913951 "3.0" ,
914952 "3.1" ,
@@ -927,6 +965,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
927965 "Release-Date: 2008-12-03\n "
928966 "Is-Released: yes\n "
929967 "Is-Supported: yes\n "
968+ "EOL-Date: UNKNOWN\n "
969+ "Is-EOL: no\n "
930970 "Subversions: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8\n "
931971 ),
932972 ),
@@ -939,6 +979,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
939979 "release_date" : "2008-12-03" ,
940980 "is_released" : True ,
941981 "is_supported" : True ,
982+ "eol_date" : None ,
983+ "is_eol" : False ,
942984 "subversions" : ["3.5" , "3.6" , "3.7" , "3.8" ],
943985 },
944986 (
@@ -947,6 +989,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
947989 "Release-Date: 2008-12-03\n "
948990 "Is-Released: yes\n "
949991 "Is-Supported: yes\n "
992+ "EOL-Date: UNKNOWN\n "
993+ "Is-EOL: no\n "
950994 "Subversions: 3.5, 3.6, 3.7, 3.8\n "
951995 ),
952996 ),
@@ -959,6 +1003,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
9591003 "release_date" : "2008-12-03" ,
9601004 "is_released" : True ,
9611005 "is_supported" : True ,
1006+ "eol_date" : None ,
1007+ "is_eol" : False ,
9621008 "subversions" : ["3.5" , "3.6" , "3.7" ],
9631009 },
9641010 (
@@ -967,6 +1013,8 @@ def test_cmd_list_micro(mode: str, versions: List[str]) -> None:
9671013 "Release-Date: 2008-12-03\n "
9681014 "Is-Released: yes\n "
9691015 "Is-Supported: yes\n "
1016+ "EOL-Date: UNKNOWN\n "
1017+ "Is-EOL: no\n "
9701018 "Subversions: 3.5, 3.6, 3.7\n "
9711019 ),
9721020 ),
@@ -1096,13 +1144,17 @@ def test_show(version: str, subversions: str, data: dict, headers: str) -> None:
10961144 "release_date" : None ,
10971145 "is_released" : True ,
10981146 "is_supported" : False ,
1147+ "eol_date" : None ,
1148+ "is_eol" : True ,
10991149 },
11001150 (
11011151 "Version: 0.9.2\n "
11021152 "Level: micro\n "
11031153 "Release-Date: UNKNOWN\n "
11041154 "Is-Released: yes\n "
11051155 "Is-Supported: no\n "
1156+ "EOL-Date: UNKNOWN\n "
1157+ "Is-EOL: yes\n "
11061158 ),
11071159 ),
11081160 (
@@ -1113,13 +1165,17 @@ def test_show(version: str, subversions: str, data: dict, headers: str) -> None:
11131165 "release_date" : "2013-05-15" ,
11141166 "is_released" : True ,
11151167 "is_supported" : False ,
1168+ "eol_date" : "2017-09-29" ,
1169+ "is_eol" : True ,
11161170 },
11171171 (
11181172 "Version: 3.3.2\n "
11191173 "Level: micro\n "
11201174 "Release-Date: 2013-05-15\n "
11211175 "Is-Released: yes\n "
11221176 "Is-Supported: no\n "
1177+ "EOL-Date: 2017-09-29\n "
1178+ "Is-EOL: yes\n "
11231179 ),
11241180 ),
11251181 (
@@ -1130,13 +1186,17 @@ def test_show(version: str, subversions: str, data: dict, headers: str) -> None:
11301186 "release_date" : "2017-03-21" ,
11311187 "is_released" : True ,
11321188 "is_supported" : True ,
1189+ "eol_date" : "2021-12-23" ,
1190+ "is_eol" : False ,
11331191 },
11341192 (
11351193 "Version: 3.6.1\n "
11361194 "Level: micro\n "
11371195 "Release-Date: 2017-03-21\n "
11381196 "Is-Released: yes\n "
11391197 "Is-Supported: yes\n "
1198+ "EOL-Date: 2021-12-23\n "
1199+ "Is-EOL: no\n "
11401200 ),
11411201 ),
11421202 (
@@ -1147,13 +1207,17 @@ def test_show(version: str, subversions: str, data: dict, headers: str) -> None:
11471207 "release_date" : "2019-06-24" ,
11481208 "is_released" : False ,
11491209 "is_supported" : False ,
1210+ "eol_date" : "2023-06-27" ,
1211+ "is_eol" : False ,
11501212 },
11511213 (
11521214 "Version: 3.7.4\n "
11531215 "Level: micro\n "
11541216 "Release-Date: 2019-06-24\n "
11551217 "Is-Released: no\n "
11561218 "Is-Supported: no\n "
1219+ "EOL-Date: 2023-06-27\n "
1220+ "Is-EOL: no\n "
11571221 ),
11581222 ),
11591223 ],
@@ -1172,6 +1236,34 @@ def test_show_micro(version: str, subversions: str, data: dict, headers: str) ->
11721236 assert json .loads (r .output ) == data
11731237
11741238
1239+ def test_show_recent (mocker : MockerFixture ) -> None :
1240+ mocker .patch ("time.time" , return_value = 1635992101 )
1241+ r = CliRunner ().invoke (main , ["-d" , DATA_FILE , "show" , "2" ])
1242+ assert r .exit_code == 0 , show_result (r )
1243+ assert r .output == (
1244+ "Version: 2\n "
1245+ "Level: major\n "
1246+ "Release-Date: 2000-10-16\n "
1247+ "Is-Released: yes\n "
1248+ "Is-Supported: no\n "
1249+ "EOL-Date: 2020-01-01\n "
1250+ "Is-EOL: yes\n "
1251+ "Subversions: 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7\n "
1252+ )
1253+ r = CliRunner ().invoke (main , ["-d" , DATA_FILE , "show" , "--json" , "2" ])
1254+ assert r .exit_code == 0 , show_result (r )
1255+ assert json .loads (r .output ) == {
1256+ "version" : "2" ,
1257+ "level" : "major" ,
1258+ "release_date" : "2000-10-16" ,
1259+ "is_released" : True ,
1260+ "is_supported" : False ,
1261+ "eol_date" : "2020-01-01" ,
1262+ "is_eol" : True ,
1263+ "subversions" : ["2.0" , "2.1" , "2.2" , "2.3" , "2.4" , "2.5" , "2.6" , "2.7" ],
1264+ }
1265+
1266+
11751267@pytest .mark .parametrize ("v" , ["" , "1.2.3.4" , "1.2.3rc1" , "foobar" , "a.b.c" ])
11761268def test_show_invalid_version (v : str ) -> None :
11771269 r = CliRunner ().invoke (main , ["-d" , DATA_FILE , "show" , v ], standalone_mode = False )
0 commit comments