From 5a8871223f532505c25c173a499d7e9baba94e98 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Tue, 7 Apr 2026 08:33:44 -0700 Subject: [PATCH 1/3] Log orphaned attachments action for tests --- src/org/labkey/test/tests/BasicTest.java | 9 ++++++ .../labkey/test/util/AttachmentHelper.java | 29 +++++++++++++++++++ src/org/labkey/test/util/Crawler.java | 1 - 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 src/org/labkey/test/util/AttachmentHelper.java diff --git a/src/org/labkey/test/tests/BasicTest.java b/src/org/labkey/test/tests/BasicTest.java index 0c9f1a1dcb..fb5c2adea4 100644 --- a/src/org/labkey/test/tests/BasicTest.java +++ b/src/org/labkey/test/tests/BasicTest.java @@ -29,6 +29,7 @@ import org.labkey.test.categories.Hosting; import org.labkey.test.categories.Smoke; import org.labkey.test.pages.core.admin.ShowAdminPage; +import org.labkey.test.util.AttachmentHelper; import org.labkey.test.util.Order; import java.util.List; @@ -62,6 +63,14 @@ public void testScripts() assertTextNotPresent("WARNING:"); } + @Test + public void testOrphanedAttachments() + { + int orphanCount = AttachmentHelper.logOrphanedAttachments(); + if (orphanCount > 0) + log("Orphaned attachments: " + orphanCount); + } + @Test public void testStartupLogging() { diff --git a/src/org/labkey/test/util/AttachmentHelper.java b/src/org/labkey/test/util/AttachmentHelper.java new file mode 100644 index 0000000000..8f1823eaa9 --- /dev/null +++ b/src/org/labkey/test/util/AttachmentHelper.java @@ -0,0 +1,29 @@ +package org.labkey.test.util; + +import org.labkey.remoteapi.CommandException; +import org.labkey.remoteapi.CommandResponse; +import org.labkey.remoteapi.SimpleGetCommand; +import org.labkey.test.WebTestHelper; + +import java.io.IOException; + +public class AttachmentHelper +{ + /** + * Tells LabKey to log the first 20 orphaned attachments it detects at the ERROR level. Returns the total number of + * orphaned attachments detected. Must be a root admin (site or app) to call this. + */ + public static int logOrphanedAttachments() + { + SimpleGetCommand command = new SimpleGetCommand("admin", "logOrphanedAttachments"); + try + { + CommandResponse response = command.execute(WebTestHelper.getRemoteApiConnection(), "/"); + return response.getProperty("count"); + } + catch (IOException | CommandException e) + { + throw new RuntimeException(e); + } + } +} diff --git a/src/org/labkey/test/util/Crawler.java b/src/org/labkey/test/util/Crawler.java index c040dc5fca..9b7d6b8884 100644 --- a/src/org/labkey/test/util/Crawler.java +++ b/src/org/labkey/test/util/Crawler.java @@ -194,7 +194,6 @@ protected List getDefaultExcludedActions() new ControllerActionId("login", "setPassword"), new ControllerActionId("ms2", "showList"), new ControllerActionId("ms2", "showParamsFile"), - new ControllerActionId("nlp", "runPipeline"), new ControllerActionId("pipeline-analysis", "analyze"), // Doesn't navigate new ControllerActionId("project", "togglePageAdminMode"), // Tested directly in XTandemTest From 3ecff5ff0187cf00a7cdc417c4a5496d3068e334 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Wed, 8 Apr 2026 14:19:56 -0700 Subject: [PATCH 2/3] Remove check from BasicTest --- src/org/labkey/test/tests/BasicTest.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/org/labkey/test/tests/BasicTest.java b/src/org/labkey/test/tests/BasicTest.java index fb5c2adea4..bfb144bc72 100644 --- a/src/org/labkey/test/tests/BasicTest.java +++ b/src/org/labkey/test/tests/BasicTest.java @@ -63,14 +63,6 @@ public void testScripts() assertTextNotPresent("WARNING:"); } - @Test - public void testOrphanedAttachments() - { - int orphanCount = AttachmentHelper.logOrphanedAttachments(); - if (orphanCount > 0) - log("Orphaned attachments: " + orphanCount); - } - @Test public void testStartupLogging() { From 50dfd0ef9ff0fb0c3951978e16e2a7d5d3e65775 Mon Sep 17 00:00:00 2001 From: Adam Rauch Date: Wed, 8 Apr 2026 14:25:47 -0700 Subject: [PATCH 3/3] Add check to DatabaseDiagnosticsTest --- src/org/labkey/test/tests/DatabaseDiagnosticsTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/org/labkey/test/tests/DatabaseDiagnosticsTest.java b/src/org/labkey/test/tests/DatabaseDiagnosticsTest.java index a729e2eda4..b0877fcbe8 100644 --- a/src/org/labkey/test/tests/DatabaseDiagnosticsTest.java +++ b/src/org/labkey/test/tests/DatabaseDiagnosticsTest.java @@ -31,6 +31,7 @@ import org.labkey.test.io.Grep; import org.labkey.test.pages.core.admin.SiteValidationPage; import org.labkey.test.pages.pipeline.PipelineStatusDetailsPage; +import org.labkey.test.util.AttachmentHelper; import org.labkey.test.util.Maps; import org.labkey.test.util.Order; import org.labkey.test.util.PasswordUtil; @@ -135,6 +136,14 @@ public void collectActionExceptions() getArtifactCollector().dumpPageSnapshot("exceptions", null); } + @Test + public void testOrphanedAttachments() + { + int orphanCount = AttachmentHelper.logOrphanedAttachments(); + if (orphanCount > 0) + log("Orphaned attachments: " + orphanCount); + } + @Override public List getAssociatedModules() {