From 6171c6ebc9ee89bda81fe8f1d8e155de8a5197bf Mon Sep 17 00:00:00 2001 From: vga91 Date: Tue, 16 May 2023 11:35:12 +0200 Subject: [PATCH] [rePYjknU] Fix flaky testExportQueryNodesJsonCount --- it/src/test/java/apoc/it/core/ExportJsonS3Test.java | 7 +++++-- .../src/main/java/apoc/util/s3/S3TestUtil.java | 13 +++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/it/src/test/java/apoc/it/core/ExportJsonS3Test.java b/it/src/test/java/apoc/it/core/ExportJsonS3Test.java index caa654bdf..492b23b80 100644 --- a/it/src/test/java/apoc/it/core/ExportJsonS3Test.java +++ b/it/src/test/java/apoc/it/core/ExportJsonS3Test.java @@ -35,6 +35,7 @@ import static apoc.ApocConfig.apocConfig; import static apoc.util.FileTestUtil.assertStreamEquals; import static apoc.util.MapUtil.map; +import static apoc.util.s3.S3TestUtil.assertS3KeyEventually; import static apoc.util.s3.S3TestUtil.readS3FileToString; import static org.junit.Assert.*; @@ -395,8 +396,10 @@ public void testExportQueryOrderJson() throws Exception { } private void assertStreamStringEquals(File directoryExpected, String filename, String s3Url) { - final String actual = readS3FileToString(s3Url); - assertStreamEquals(directoryExpected, filename, actual); + assertS3KeyEventually(() -> { + final String actual = readS3FileToString(s3Url); + assertStreamEquals(directoryExpected, filename, actual); + }); } private void assertResults(String filename, Map r, final String source) { diff --git a/test-utils/src/main/java/apoc/util/s3/S3TestUtil.java b/test-utils/src/main/java/apoc/util/s3/S3TestUtil.java index f3ec80961..340088840 100644 --- a/test-utils/src/main/java/apoc/util/s3/S3TestUtil.java +++ b/test-utils/src/main/java/apoc/util/s3/S3TestUtil.java @@ -61,18 +61,23 @@ public static S3Object getS3Object(String s3Url) throws MalformedURLException, A } public static void assertStringFileEquals(String expected, String s3Url) { + assertS3KeyEventually(() -> { + final String actual = readS3FileToString(s3Url); + assertEquals(expected, actual); + }); + } + + public static void assertS3KeyEventually(Runnable runnable) { Assert.assertEventually(() -> { - final String actual; try { - actual = readS3FileToString(s3Url); + runnable.run(); + return true; } catch (AmazonClientException e) { if (e.getMessage().contains("The specified key does not exist")) { return false; } throw e; } - assertEquals(expected, actual); - return true; }, v -> v, 30L, TimeUnit.SECONDS); } }