From b6dad08a8389736b7e960cfe9bc719cfc21a98f5 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sun, 9 Jan 2022 21:04:51 -0800 Subject: [PATCH] Keep trying up to ten times, refs #364 --- tests/test_cli_insert.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/tests/test_cli_insert.py b/tests/test_cli_insert.py index 346bb38..efa55bd 100644 --- a/tests/test_cli_insert.py +++ b/tests/test_cli_insert.py @@ -481,13 +481,22 @@ def test_insert_streaming_batch_size_1(db_path): ) proc.stdin.write(b'{"name": "Azi"}\n') proc.stdin.flush() - # Without this delay the data wasn't yet visible - time.sleep(0.4) - assert list(Database(db_path)["rows"].rows) == [{"name": "Azi"}] + + def try_until(expected): + tries = 0 + while True: + rows = list(Database(db_path)["rows"].rows) + if rows == expected: + return + tries += 1 + if tries > 10: + assert False, "Expected {}, got {}".format(expected, rows) + time.sleep(tries * 0.1) + + try_until([{"name": "Azi"}]) proc.stdin.write(b'{"name": "Suna"}\n') proc.stdin.flush() - time.sleep(0.4) - assert list(Database(db_path)["rows"].rows) == [{"name": "Azi"}, {"name": "Suna"}] + try_until([{"name": "Azi"}, {"name": "Suna"}]) proc.stdin.close() proc.wait() assert proc.returncode == 0