@@ -277,6 +277,31 @@ def test_show_announcements_does_nothing_when_latest_announcements_shown_before(
277277 logger .info .assert_not_called ()
278278
279279
280+ def test_force_refresh_modules_json_downloads_file (requests_mock : RequestsMock ) -> None :
281+ from lean .models import url as modules_url , file_path as modules_file_path
282+ modules_json = {"modules" : {"SomeModule" : {"version" : "1.0" }}}
283+ requests_mock .add (requests_mock .GET , modules_url , json = modules_json )
284+
285+ logger , storage , docker_manager , update_manager = create_objects ()
286+
287+ update_manager .force_refresh_modules_json ()
288+
289+ assert modules_file_path .is_file ()
290+ with open (modules_file_path ) as f :
291+ assert json .load (f ) == modules_json
292+
293+
294+ def test_force_refresh_modules_json_does_nothing_when_offline (requests_mock : RequestsMock ) -> None :
295+ from lean .models import url as modules_url
296+ from requests .exceptions import ConnectionError as RequestsConnectionError
297+ requests_mock .add (requests_mock .GET , modules_url , body = RequestsConnectionError ())
298+
299+ logger , storage , docker_manager , update_manager = create_objects ()
300+
301+ # Should not raise
302+ update_manager .force_refresh_modules_json ()
303+
304+
280305def test_show_announcements_does_nothing_when_there_are_no_announcements (requests_mock : RequestsMock ) -> None :
281306 requests_mock .add (requests_mock .GET ,
282307 "https://raw.githubusercontent.com/QuantConnect/lean-cli/master/announcements.json" ,
0 commit comments