diff --git a/src/config.py b/src/config.py index fb26d8d4e..ce310eaa4 100644 --- a/src/config.py +++ b/src/config.py @@ -201,7 +201,8 @@ def get_scraper_timeout() -> int: timeout (int): The timeout """ with open(os.path.join(ROOT_DIR, "config.json"), "r") as file: - return json.load(file)["scraper_timeout"] or 300 + timeout = json.load(file).get("scraper_timeout") + return 300 if timeout is None else timeout def get_outreach_message_subject() -> str: """ diff --git a/tests/test_config.py b/tests/test_config.py index 0a0976bfc..f93b5a313 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -79,6 +79,24 @@ def test_non_object_post_bridge_config_falls_back_to_defaults(self) -> None: self.assertEqual(post_bridge_config["account_ids"], []) self.assertFalse(post_bridge_config["enabled"]) + def test_scraper_timeout_allows_explicit_zero(self) -> None: + with tempfile.TemporaryDirectory() as temp_dir: + self.write_config(temp_dir, {"scraper_timeout": 0}) + + with patch.object(config, "ROOT_DIR", temp_dir): + timeout = config.get_scraper_timeout() + + self.assertEqual(timeout, 0) + + def test_scraper_timeout_defaults_when_missing(self) -> None: + with tempfile.TemporaryDirectory() as temp_dir: + self.write_config(temp_dir, {}) + + with patch.object(config, "ROOT_DIR", temp_dir): + timeout = config.get_scraper_timeout() + + self.assertEqual(timeout, 300) + if __name__ == "__main__": unittest.main()