From 8d89108fa15f8164373f13ab2260ff22f3cbc1dd Mon Sep 17 00:00:00 2001 From: jakubs <jakubs> Date: Thu, 8 Nov 2012 14:49:12 +0000 Subject: [PATCH] SP-389 BIS-190 simple metaproject dropbox api dropbox test SVN: 27555 --- .../metaproject-api/metaproject-api.py | 27 +++++++ .../metaproject-api/plugin.properties | 6 ++ .../MetaprojectDropboxApiSystemTest.java | 75 +++++++++++++++++++ 3 files changed, 108 insertions(+) create mode 100644 datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/metaproject-api.py create mode 100644 datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/plugin.properties create mode 100644 datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/MetaprojectDropboxApiSystemTest.java diff --git a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/metaproject-api.py b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/metaproject-api.py new file mode 100644 index 00000000000..c6e66697469 --- /dev/null +++ b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/metaproject-api.py @@ -0,0 +1,27 @@ +SPACE_CODE = "META" +PROJECT_ID = "/META/META" +EXPERIMENT_ID = "/META/META/META" + +def create_project_and_experiment(transaction): + space = transaction.createNewSpace(SPACE_CODE, None) + space.setDescription("A demo space") + project = transaction.createNewProject(PROJECT_ID) + project.setDescription("A demo project") + exp = transaction.createNewExperiment(EXPERIMENT_ID, 'SIRNA_HCS') + exp.setPropertyValue("DESCRIPTION", "A sample experiment") + return exp + +def process(transaction): + create_project_and_experiment(transaction) + + existing_metaproject = transaction.getMetaproject("TEST_METAPROJECTS", "test") + copy_metaproject = transaction.createNewMetaproject("COPY_TEST_METAPROJCTS", existing_metaproject.getDescription(), "test") + + print existing_metaproject.getDescription() + + # existing_attached_sample = transaction.getSample("TEST-SPACE/EV-TEST") + + new_metaproject = transaction.createNewMetaproject("TEST_META", "description", "test") + + sample = transaction.createNewSample("/META/METASAMPLE", "NORMAL") + new_metaproject.addEntity(sample) diff --git a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/plugin.properties b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/plugin.properties new file mode 100644 index 00000000000..a547a3e4c0b --- /dev/null +++ b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/metaproject-api/plugin.properties @@ -0,0 +1,6 @@ +incoming-dir = ${root-dir}/incoming-metaproject-api-test +incoming-dir-create = true +incoming-data-completeness-condition = auto-detection +top-level-data-set-handler = ch.systemsx.cisd.etlserver.registrator.api.v2.JythonTopLevelDataSetHandlerV2 +script-path = metaproject-api.py +storage-processor = ch.systemsx.cisd.etlserver.DefaultStorageProcessor diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/MetaprojectDropboxApiSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/MetaprojectDropboxApiSystemTest.java new file mode 100644 index 00000000000..f4344715f13 --- /dev/null +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/MetaprojectDropboxApiSystemTest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2012 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.datastoreserver.systemtests; + +import java.io.File; +import java.io.IOException; + +import org.testng.annotations.Test; + +import ch.systemsx.cisd.common.filesystem.FileUtilities; +import ch.systemsx.cisd.openbis.dss.generic.shared.IEncapsulatedOpenBISService; +import ch.systemsx.cisd.openbis.dss.generic.shared.ServiceProvider; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject; + +/** + * @author Jakub Straszewski + */ +public class MetaprojectDropboxApiSystemTest extends SystemTestCase +{ + // for jython script locate + // metaproject-api-data-set-handler.py + + @Override + protected File getIncomingDirectory() + { + return new File(rootDir, "incoming-metaproject-api-test"); + } + + @Test + public void testCreateMetaproject() throws Exception + { + IEncapsulatedOpenBISService openBISService = ServiceProvider.getOpenBISService(); + + runDropbox(); + + assertMetaprojectCreated(openBISService); + } + + private void assertMetaprojectCreated(IEncapsulatedOpenBISService openBISService) + { + Metaproject oldProject = openBISService.tryGetMetaproject("TEST_METAPROJECTS", "test"); + Metaproject newProject = openBISService.tryGetMetaproject("COPY_TEST_METAPROJCTS", "test"); + + assertEquals(oldProject.getDescription(), newProject.getDescription()); + } + + private void runDropbox() throws IOException, Exception + { + File exampleDataSet = new File(workingDirectory, "my-data"); + createExampleDataSet(exampleDataSet); + moveFileToIncoming(exampleDataSet); + waitUntilDataSetImported(); + } + + private void createExampleDataSet(File exampleDataSet) + { + exampleDataSet.mkdirs(); + FileUtilities.writeToFile(new File(exampleDataSet, "file.txt"), "hello world"); + } + +} -- GitLab