diff --git a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py index 0ae71c94496d77b2ab27bb4c941b791dbd94e7b6..5e0e34d417b68f2b303bf27c86a3b80293c8c65b 100644 --- a/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py +++ b/datastore_server/sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test/data-set-handler.py @@ -1,7 +1,22 @@ +from ch.systemsx.cisd.common.mail import EMailAddress + SPACE_CODE = "RICH_SPACE" PROJECT_ID = "/RICH_SPACE/RICH_PROJECT" EXPERIMENT_ID = "/RICH_SPACE/RICH_PROJECT/RICH_EXPERIMENT" +# the hooks + +def sendMail(context, subject, message): + mailClient = context.getGlobalState().getMailClient(); + addressFrom = EMailAddress("example@example.com") + addressTo = EMailAddress("rich_test_example@example.com", "example name") + mailClient.sendEmailMessage(subject, message, None, + addressFrom, addressTo) + +def post_metadata_registration(context): + content = "post_metadata_registration rich %s " % context.getPersistentMap().get("email_text") + sendMail(context, "Subject", "post_metadata_registration rich") + def create_space_if_needed(transaction): space = transaction.getSpace(SPACE_CODE) if None == space: @@ -19,18 +34,19 @@ def create_experiment_if_needed(transaction): exp = transaction.getExperiment(EXPERIMENT_ID) if None == exp: create_project_if_needed(transaction) - print 'Creating new experiment : ' + EXPERIMENT_ID exp = transaction.createNewExperiment(EXPERIMENT_ID, 'SIRNA_HCS') exp.setPropertyValue("DESCRIPTION", "A sample experiment") return exp - def createMaterials(transaction): for x in range(0,100): mat = transaction.createNewMaterial("RM_%d" % x, "GENE") mat.setPropertyValue("GENE_SYMBOL", "RM_%d_S" %x) +def createSamples(transaction): + sample = transaction.createNewSample('/RICH_SPACE/SAMPLE123', 'DYNAMIC_PLATE') + def process(transaction): # create experiment experiment = create_experiment_if_needed(transaction) @@ -43,3 +59,8 @@ def process(transaction): # register many materials createMaterials(transaction) + + # register samples + createSamples(transaction) + + transaction.getRegistrationContext.getPersistentMap().put("email_text", "rich_email_text") diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java index 4e9b8dbccd97c9f239e1240624fcb4452ebed752..a7498c656f3e6797415ef7059e8ff91bf889b08f 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/FeatureRichDataSetImportSystemTest.java @@ -40,7 +40,7 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier; */ public class FeatureRichDataSetImportSystemTest extends SystemTestCase { - // for jython script go to sourceTest/core-plugins/generic-test/1/dss/drop-boxes/link-data-test + // for jython script go to sourceTest/core-plugins/generic-test/1/dss/drop-boxes/rich-test @Override protected File getIncomingDirectory() @@ -51,6 +51,7 @@ public class FeatureRichDataSetImportSystemTest extends SystemTestCase @Test public void testRichImport() throws Exception { + File exampleDataSet = new File(workingDirectory, "my-data"); createExampleDataSet(exampleDataSet); moveFileToIncoming(exampleDataSet); @@ -65,6 +66,25 @@ public class FeatureRichDataSetImportSystemTest extends SystemTestCase assertLinkedDataSetImported(openBISService); assert100MaterialsCreated(openBISService); + + assertEmailHasBeenSentFromHook(); + } + + private void assertEmailHasBeenSentFromHook() + { + File emailDirectory = new File(new File(workingDirectory, "dss-root"), "email"); + + for (File f : FileUtilities.listFiles(emailDirectory)) + { + String content = FileUtilities.loadExactToString(f); + if (content.contains("post_metadata_registration rich")) + { + assertTrue(content.contains("rich_email_text")); // check the content introduced + // with the persistent map + return; // assert ok + } + } + fail("No email found!"); } private void assertSpaceProjectExperiment(IEncapsulatedOpenBISService openBISService) @@ -99,8 +119,7 @@ public class FeatureRichDataSetImportSystemTest extends SystemTestCase for (int i = 0; i < 100; i++) { - MaterialIdentifier ident = - MaterialIdentifier.tryParseIdentifier("RM_" + i + " (GENE)"); + MaterialIdentifier ident = MaterialIdentifier.tryParseIdentifier("RM_" + i + " (GENE)"); ids.add(ident); } diff --git a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java index 640f3b5ebd8079100b25270fe4bb3daf7cf6ea9f..3e8f70a88e466a6c342c645f8daa03784edbb496 100644 --- a/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java +++ b/datastore_server/sourceTest/java/ch/systemsx/cisd/openbis/datastoreserver/systemtests/LinkDataSetImportSystemTest.java @@ -37,6 +37,9 @@ public class LinkDataSetImportSystemTest extends SystemTestCase // for jython script go to sourceTest/core-plugins/generic-test/1/dss/drop-boxes/link-data-test + File emailDirectory = new File(new File(new File(workingDirectory, "SystemTests"), "dss-root"), + "email"); + @Override protected File getIncomingDirectory() {