From 206663e0c15a7b0d466bac7ad72132b7c7af0e26 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Tue, 28 Oct 2025 16:30:25 -0700 Subject: [PATCH 1/2] Ignore test failures caused by labkey.org maintenance --- .../labkey/test/tests/LinkedReportTest.java | 6 ++++- .../NonStandardDateAndTimeFormatTest.java | 2 ++ src/org/labkey/test/util/WebServicesUtil.java | 27 +++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/org/labkey/test/tests/LinkedReportTest.java b/src/org/labkey/test/tests/LinkedReportTest.java index a88629cc05..f8097e03fd 100644 --- a/src/org/labkey/test/tests/LinkedReportTest.java +++ b/src/org/labkey/test/tests/LinkedReportTest.java @@ -8,6 +8,7 @@ import org.labkey.test.BaseWebDriverTest; import org.labkey.test.Locator; import org.labkey.test.categories.Daily; +import org.labkey.test.util.WebServicesUtil; import java.util.List; @@ -53,7 +54,10 @@ public void testLinkedReportToExternalURL() waitAndClick(Locator.linkWithText(REPORT_NAME)); switchToWindow(1); - waitForElement(Locator.linkWithText("Get a Demo")); + if (!WebServicesUtil.isLabKeyDotOrgMaintenance(getDriver())) + { + waitForElement(Locator.linkWithText("Get a Demo")); + } Assert.assertEquals("Linked report navigated to incorrect external link", LINK_REPORT_URL, getDriver().getCurrentUrl()); } } diff --git a/src/org/labkey/test/tests/NonStandardDateAndTimeFormatTest.java b/src/org/labkey/test/tests/NonStandardDateAndTimeFormatTest.java index 7dbbceffa8..37dcb3b86d 100644 --- a/src/org/labkey/test/tests/NonStandardDateAndTimeFormatTest.java +++ b/src/org/labkey/test/tests/NonStandardDateAndTimeFormatTest.java @@ -32,6 +32,7 @@ import org.labkey.test.util.DataRegionTable; import org.labkey.test.util.PortalHelper; import org.labkey.test.util.URLBuilder; +import org.labkey.test.util.WebServicesUtil; import org.openqa.selenium.WebElement; import java.io.IOException; @@ -764,6 +765,7 @@ public void testScopeFromSiteToSubFolder() throws IOException, CommandException WebElement banner = Locator.tagWithText("h3", "Date & Number Display Formats").refindWhenNeeded(getDriver()); checker().withScreenshot() .verifyTrue("'Click here' link did not navigate as expected.", + WebServicesUtil.isLabKeyDotOrgMaintenance(getDriver()) || waitFor(banner::isDisplayed, 1_000)); closeExtraWindows(); } diff --git a/src/org/labkey/test/util/WebServicesUtil.java b/src/org/labkey/test/util/WebServicesUtil.java index 291730d1fe..3ff2899b56 100644 --- a/src/org/labkey/test/util/WebServicesUtil.java +++ b/src/org/labkey/test/util/WebServicesUtil.java @@ -15,10 +15,14 @@ */ package org.labkey.test.util; +import org.openqa.selenium.WebDriver; + import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; +import java.net.URL; +import java.util.Objects; import static org.junit.Assert.assertTrue; @@ -91,4 +95,27 @@ static public Socket openSocket(String hostIp, int port) throws IOException socket.connect(new InetSocketAddress(hostIp, port), 2000); return socket; } + + /** + * Checks whether the current page is the maintenance page for labkey.org. + * This is usually indicated by a 502 response code but we will accept any 5xx response. + * Allows tests that check links to labkey.org to not fail during maintenance periods. + * + * @param driver The WebDriver instance to check + * @return true if the current page is the maintenance page for labkey.org, false otherwise. + */ + public static boolean isLabKeyDotOrgMaintenance(WebDriver driver) + { + try + { + URL url = new URL(Objects.requireNonNull(driver.getCurrentUrl())); + String title = driver.getTitle(); + int responseCode = Integer.parseInt(Objects.requireNonNull(title).substring(0, 3)); + return url.getHost().endsWith("labkey.org") && responseCode >= 500 && responseCode < 600; + } + catch (Exception e) + { + return false; + } + } } From 051e322b42896e619ed7e2f64fed9b51cbbaccc6 Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Wed, 29 Oct 2025 08:42:44 -0700 Subject: [PATCH 2/2] Check for more specific response codes --- src/org/labkey/test/util/WebServicesUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/util/WebServicesUtil.java b/src/org/labkey/test/util/WebServicesUtil.java index 3ff2899b56..908aa110e1 100644 --- a/src/org/labkey/test/util/WebServicesUtil.java +++ b/src/org/labkey/test/util/WebServicesUtil.java @@ -98,7 +98,7 @@ static public Socket openSocket(String hostIp, int port) throws IOException /** * Checks whether the current page is the maintenance page for labkey.org. - * This is usually indicated by a 502 response code but we will accept any 5xx response. + * This is usually indicated by a {@code 502}-{@code 504} status code. * Allows tests that check links to labkey.org to not fail during maintenance periods. * * @param driver The WebDriver instance to check @@ -111,7 +111,7 @@ public static boolean isLabKeyDotOrgMaintenance(WebDriver driver) URL url = new URL(Objects.requireNonNull(driver.getCurrentUrl())); String title = driver.getTitle(); int responseCode = Integer.parseInt(Objects.requireNonNull(title).substring(0, 3)); - return url.getHost().endsWith("labkey.org") && responseCode >= 500 && responseCode < 600; + return url.getHost().endsWith("labkey.org") && 502 <= responseCode && responseCode <= 504; } catch (Exception e) {