[firefox] Handle 404.
The 115.0.3 release seems to have been halted https://wiki.mozilla.org/Firefox/Channels/Meetings/2023-07-18#Schedule_Update so the page is "semi-published". It is linked on the release list page https://www.mozilla.org/en-US/firefox/releases/ but the page itself gives a 404. So we ignore any such unpublished releases for now
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import concurrent.futures
|
import concurrent.futures
|
||||||
import re
|
import re
|
||||||
import requests
|
import requests
|
||||||
|
from urllib.error import HTTPError
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
from common import endoflife
|
from common import endoflife
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
@@ -24,6 +25,9 @@ class InvalidPageVariantError(Exception):
|
|||||||
"""Raised when an invalid variant is passed to get_version_and_date"""
|
"""Raised when an invalid variant is passed to get_version_and_date"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class UnpublishedReleaseError(Exception):
|
||||||
|
"""Raised when a page is not yet published, but linked"""
|
||||||
|
pass
|
||||||
|
|
||||||
def format_date(unformatted_date: str) -> str:
|
def format_date(unformatted_date: str) -> str:
|
||||||
""" Format date from July 11, 2002 to 2002-07-11 """
|
""" Format date from July 11, 2002 to 2002-07-11 """
|
||||||
@@ -107,7 +111,13 @@ def get_version_and_date(release_page: str, release_version: str) -> Tuple[str,
|
|||||||
get_version_and_date_variant_2,
|
get_version_and_date_variant_2,
|
||||||
get_version_and_date_variant_3
|
get_version_and_date_variant_3
|
||||||
]
|
]
|
||||||
soup = make_bs_request(release_page)
|
try:
|
||||||
|
soup = make_bs_request(release_page)
|
||||||
|
except(HTTPError) as e:
|
||||||
|
if(e.code == 404):
|
||||||
|
raise UnpublishedReleaseError(f"The release page is not yet published, got a 404: {release_page}")
|
||||||
|
else:
|
||||||
|
raise e
|
||||||
|
|
||||||
for function in functions:
|
for function in functions:
|
||||||
try:
|
try:
|
||||||
@@ -142,7 +152,7 @@ def fetch_releases():
|
|||||||
(version, date) = future.result()
|
(version, date) = future.result()
|
||||||
print(f"{version}: {date}")
|
print(f"{version}: {date}")
|
||||||
releases[version] = date
|
releases[version] = date
|
||||||
except UnsupportedPageError:
|
except(UnsupportedPageError, UnpublishedReleaseError):
|
||||||
print(f"Unsupported release page: {future_to_url[future]}")
|
print(f"Unsupported release page: {future_to_url[future]}")
|
||||||
|
|
||||||
return releases
|
return releases
|
||||||
|
|||||||
Reference in New Issue
Block a user