def overpass_sleep(ctx: context.Context) -> None: """Sleeps to respect overpass rate limit.""" while True: sleep = overpass_query.overpass_query_need_sleep(ctx) if not sleep: break info("overpass_sleep: waiting for %s seconds", sleep) ctx.get_time().sleep(sleep)
def overpass_sleep() -> None: """Sleeps to respect overpass rate limit.""" while True: sleep = overpass_query.overpass_query_need_sleep() if not sleep: break logging.info("overpass_sleep: waiting for %s seconds", sleep) time.sleep(sleep)
def handle_overpass_error(http_error: urllib.error.HTTPError) -> yattag.Doc: """Handles a HTTP error from Overpass.""" doc = yattag.Doc() doc.text(_("Overpass error: {0}").format(str(http_error))) sleep = overpass_query.overpass_query_need_sleep() if sleep: doc.stag("br") doc.text(_("Note: wait for {} seconds").format(sleep)) return doc
def handle_overpass_error(ctx: context.Context, http_error: str) -> yattag.doc.Doc: """Handles a HTTP error from Overpass.""" doc = yattag.doc.Doc() with doc.tag("div", id="overpass-error"): doc.text(tr("Overpass error: {0}").format(http_error)) sleep = overpass_query.overpass_query_need_sleep(ctx) if sleep: doc.stag("br") doc.text(tr("Note: wait for {} seconds").format(sleep)) return doc
def test_wait_negative(self) -> None: """Tests the wait for negative amount path.""" ctx = test_context.make_test_context() routes: List[test_context.URLRoute] = [ test_context.URLRoute( url="https://overpass-api.de/api/status", data_path="", result_path="tests/network/overpass-status-wait-negative.txt") ] network = test_context.TestNetwork(routes) ctx.set_network(network) self.assertEqual(overpass_query.overpass_query_need_sleep(ctx), 1)
def test_wait_negative(self) -> None: """Tests the wait for negative amount path.""" with unittest.mock.patch('urllib.request.urlopen', gen_urlopen("overpass-status-wait-negative")): self.assertEqual(overpass_query.overpass_query_need_sleep(), 1)
def test_happy(self) -> None: """Tests the happy path.""" with unittest.mock.patch('urllib.request.urlopen', gen_urlopen("overpass-status-happy")): self.assertEqual(overpass_query.overpass_query_need_sleep(), 0)