def test_vespa_client_timeout_exception_handled(self, mock_get_application_has_converged):
        """If a timeout exception is raised, the method should retry until the total wait time is reached"""
        side_effects = [
            httpx._exceptions.ReadTimeout("Read Timeout"),
            httpcore._exceptions.ReadTimeout("Read Timeout")
        ]
        for side_effect in side_effects:
            with self.subTest(side_effect=side_effect):
                mock_get_application_has_converged.side_effect = httpx._exceptions.ReadTimeout("Read Timeout")
                vespa_client = VespaClient("http://localhost:19071", "http://localhost:8080",
                                           "http://localhost:8080", "content_default")
                with self.assertRaises(VespaError) as e:
                    vespa_client.wait_for_application_convergence(10)
                self.assertGreaterEqual(mock_get_application_has_converged.call_count, 5)
                self.assertIn("Vespa application did not converge", str(e.exception))
If a timeout exception is raised, the method should retry until the total wait time is reached
tests/integ_tests/vespa/test_vespa_client.py