From f269d6b72a5257cbedf46002aa695b21673c9fcf Mon Sep 17 00:00:00 2001 From: labkey-tchad Date: Mon, 24 Feb 2025 13:22:18 -0800 Subject: [PATCH] Add ImportData check --- src/org/labkey/test/tests/ApiKeyTest.java | 12 ++++++++++-- .../test/util/query/QueryApiHelper.java | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/org/labkey/test/tests/ApiKeyTest.java b/src/org/labkey/test/tests/ApiKeyTest.java index 837a8eabc0..97c319ea65 100644 --- a/src/org/labkey/test/tests/ApiKeyTest.java +++ b/src/org/labkey/test/tests/ApiKeyTest.java @@ -31,6 +31,7 @@ import org.labkey.remoteapi.query.GetQueryDetailsCommand; import org.labkey.remoteapi.query.GetQueryDetailsResponse; import org.labkey.remoteapi.query.GetSchemasCommand; +import org.labkey.remoteapi.query.ImportDataResponse; import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; import org.labkey.remoteapi.query.SelectRowsResponse; @@ -373,11 +374,18 @@ private void verifyValidAPIKey(Connection connection, String userEmail) throws I assertEquals("Connection user", userEmail, whoAmI.getEmail()); QueryApiHelper queryApiHelper = new QueryApiHelper(connection, getProjectName(), "lists", LIST_NAME); + + // ImportData doesn't return auth challenge. Make sure it works + ImportDataResponse importResponse = queryApiHelper.importData(LIST_VALUE + "\nvalue" + valueCount.get()); + valueCount.incrementAndGet(); + assertEquals("Rows imported", 1, importResponse.getRowCount()); + SaveRowsResponse saveResponse = queryApiHelper.insertRows(List.of(Map.of(LIST_VALUE, "value" + valueCount.get()))); - assertEquals("Rows saved", 1, saveResponse.getRowsAffected()); + valueCount.incrementAndGet(); + assertEquals("Rows inserted", 1, saveResponse.getRowsAffected()); SelectRowsResponse selectResponse = queryApiHelper.selectRows(); - assertEquals("Total rows", valueCount.incrementAndGet(), selectResponse.getRowCount()); + assertEquals("Total rows", valueCount.get(), selectResponse.getRowCount()); whoAmI = new WhoAmICommand().execute(connection, null); assertEquals("Connection user", userEmail, whoAmI.getEmail()); diff --git a/src/org/labkey/test/util/query/QueryApiHelper.java b/src/org/labkey/test/util/query/QueryApiHelper.java index ed19a881d7..11b7623487 100644 --- a/src/org/labkey/test/util/query/QueryApiHelper.java +++ b/src/org/labkey/test/util/query/QueryApiHelper.java @@ -9,6 +9,8 @@ import org.labkey.remoteapi.domain.GetDomainDetailsCommand; import org.labkey.remoteapi.query.DeleteRowsCommand; import org.labkey.remoteapi.query.Filter; +import org.labkey.remoteapi.query.ImportDataCommand; +import org.labkey.remoteapi.query.ImportDataResponse; import org.labkey.remoteapi.query.InsertRowsCommand; import org.labkey.remoteapi.query.SaveRowsResponse; import org.labkey.remoteapi.query.SelectRowsCommand; @@ -18,6 +20,7 @@ import org.labkey.remoteapi.query.TruncateTableResponse; import org.labkey.remoteapi.query.UpdateRowsCommand; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -97,6 +100,22 @@ public SaveRowsResponse updateRows(List> rows) throws IOExce return updateRowsCommand.execute(_connection, _containerPath); } + public ImportDataResponse importData(String text) throws IOException, CommandException + { + ImportDataCommand importDataCommand = new ImportDataCommand(_schema, _query); + importDataCommand.setText(text); + importDataCommand.setTimeout(_insertTimout); + return importDataCommand.execute(_connection, _containerPath); + } + + public ImportDataResponse importData(File file) throws IOException, CommandException + { + ImportDataCommand importDataCommand = new ImportDataCommand(_schema, _query); + importDataCommand.setFile(file); + importDataCommand.setTimeout(_insertTimout); + return importDataCommand.execute(_connection, _containerPath); + } + /** * @param rowsToDelete Should include primary key(s) for the table * @return a list of the rows that were deleted