@@ -113,6 +113,17 @@ def get_pypi_package_versions(*args, **kwargs):
113113 )
114114
115115
116+ @pytest .fixture
117+ def mock_packages_with_raise (monkeypatch , volto_versions ):
118+ import requests
119+
120+ def get_package_versions (* args , ** kwargs ):
121+ raise requests .ConnectionError ("Unable to connect" )
122+
123+ monkeypatch .setattr (versions , "get_npm_package_versions" , get_package_versions )
124+ monkeypatch .setattr (versions , "get_pypi_package_versions" , get_package_versions )
125+
126+
116127@pytest .mark .parametrize (
117128 "version,min_version,max_version,allow_prerelease,expected" ,
118129 [
@@ -202,6 +213,28 @@ def test_latest_volto(
202213 assert func (min_version , max_version , allow_prerelease ) == expected
203214
204215
216+ @pytest .mark .parametrize (
217+ "min_version,max_version,allow_prerelease,expected" ,
218+ [
219+ [None , None , True , None ],
220+ [None , None , False , None ],
221+ ["17" , None , False , None ],
222+ ["17" , "18" , False , None ],
223+ ["17" , "18" , True , None ],
224+ ["17" , "17.99" , True , None ],
225+ ],
226+ )
227+ def test_latest_volto_no_connection (
228+ mock_packages_with_raise ,
229+ min_version : str ,
230+ max_version : str ,
231+ allow_prerelease : bool ,
232+ expected : str ,
233+ ):
234+ func = versions .latest_volto
235+ assert func (min_version , max_version , allow_prerelease ) == expected
236+
237+
205238@pytest .mark .parametrize (
206239 "min_version,max_version,allow_prerelease,expected" ,
207240 [
@@ -223,6 +256,27 @@ def test_latest_plone(
223256 assert func (min_version , max_version , allow_prerelease ) == expected
224257
225258
259+ @pytest .mark .parametrize (
260+ "min_version,max_version,allow_prerelease,expected" ,
261+ [
262+ [None , None , False , None ],
263+ [None , None , True , None ],
264+ [None , "5.99" , False , None ],
265+ ["5" , "5.2" , False , None ],
266+ ["5" , "6" , False , None ],
267+ ],
268+ )
269+ def test_latest_plone_no_connection (
270+ mock_packages_with_raise ,
271+ min_version : str ,
272+ max_version : str ,
273+ allow_prerelease : bool ,
274+ expected : str ,
275+ ):
276+ func = versions .latest_plone
277+ assert func (min_version , max_version , allow_prerelease ) == expected
278+
279+
226280@pytest .mark .parametrize (
227281 "plone_version,supported,earliest,latest" ,
228282 [
0 commit comments