Skip to content
Snippets Groups Projects
Commit 807ad11d authored by juanf's avatar juanf
Browse files

Merge branch 'master' of git@sissource.ethz.ch:sispub/openbis.git

parents 66bd41d1 107974ed
No related branches found
No related tags found
No related merge requests found
...@@ -295,7 +295,9 @@ class TestCase(systemtest.testcase.TestCase): ...@@ -295,7 +295,9 @@ class TestCase(systemtest.testcase.TestCase):
base64string = base64.encodestring('%s:%s' % (user, password)).replace('\n', '') base64string = base64.encodestring('%s:%s' % (user, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string) request.add_header("Authorization", "Basic %s" % base64string)
data = urllib.urlencode({'mode' : 'test'}) data = urllib.urlencode({'mode' : 'test'})
response = urllib2.urlopen(request, data, context=ssl._create_unverified_context()) # response = urllib2.urlopen(request, data, context=ssl._create_unverified_context())
# TODO if python version > 2.10: replace next line by the line above
response = urllib2.urlopen(request, data)
return response return response
def getHarvesterConfigFolder(self): def getHarvesterConfigFolder(self):
......
...@@ -357,7 +357,7 @@ public class SampleUploadSectionsParser ...@@ -357,7 +357,7 @@ public class SampleUploadSectionsParser
return results; return results;
} }
private static void generateIdentifiers(boolean projectSamplesEnabled, static void generateIdentifiers(boolean projectSamplesEnabled,
String defaultGroupIdentifier, String defaultGroupIdentifier,
SampleCodeGenerator sampleCodeGenerator, boolean isAutoGenerateCodes, SampleCodeGenerator sampleCodeGenerator, boolean isAutoGenerateCodes,
List<NewSamplesWithTypes> newSamplesWithTypes) List<NewSamplesWithTypes> newSamplesWithTypes)
...@@ -370,27 +370,28 @@ public class SampleUploadSectionsParser ...@@ -370,27 +370,28 @@ public class SampleUploadSectionsParser
List<String> codes = sampleCodeGenerator.generateCodes(newSamples.size()); List<String> codes = sampleCodeGenerator.generateCodes(newSamples.size());
for (int i = 0; i < newSamples.size(); i++) for (int i = 0; i < newSamples.size(); i++)
{ {
NewSample sample = newSamples.get(i);
String spaceCodeOrNull = null; String spaceCodeOrNull = null;
if (newSamples.get(i).getDefaultSpaceIdentifier() == null || newSamples.get(i).getDefaultSpaceIdentifier().isEmpty()) if (StringUtils.isBlank(sample.getDefaultSpaceIdentifier()))
{ {
spaceCodeOrNull = defaultGroupIdentifier; spaceCodeOrNull = defaultGroupIdentifier;
} else } else
{ {
spaceCodeOrNull = newSamples.get(i).getDefaultSpaceIdentifier(); spaceCodeOrNull = sample.getDefaultSpaceIdentifier();
} }
spaceCodeOrNull = spaceCodeOrNull.substring(1); spaceCodeOrNull = spaceCodeOrNull.substring(1);
String projectCodeOrNull = null; String projectCodeOrNull = null;
if (projectSamplesEnabled && newSamples.get(i).getExperimentIdentifier() != null if (projectSamplesEnabled && StringUtils.isNotBlank(sample.getExperimentIdentifier()))
&& !newSamples.get(i).getExperimentIdentifier().isEmpty())
{ {
String[] experimentIdentifierParts = newSamples.get(i).getExperimentIdentifier().split("/"); String[] experimentIdentifierParts = sample.getExperimentIdentifier().split("/");
if(experimentIdentifierParts.length != 4) { if (experimentIdentifierParts.length != 4)
throw new UserFailureException("Incorrect format for the experiment identifier: " + newSamples.get(i).getExperimentIdentifier()); {
throw new UserFailureException("Incorrect format for the experiment identifier: " + sample.getExperimentIdentifier());
} }
spaceCodeOrNull = experimentIdentifierParts[experimentIdentifierParts.length - 3]; spaceCodeOrNull = experimentIdentifierParts[experimentIdentifierParts.length - 3];
projectCodeOrNull = experimentIdentifierParts[experimentIdentifierParts.length - 2]; projectCodeOrNull = experimentIdentifierParts[experimentIdentifierParts.length - 2];
} }
newSamples.get(i).setIdentifier(createIdentifier(spaceCodeOrNull, projectCodeOrNull, codes.get(i))); sample.setIdentifier(createIdentifier(spaceCodeOrNull, projectCodeOrNull, codes.get(i)));
} }
} }
} }
......
/*
* Copyright 2018 ETH Zuerich, SIS
*
* 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.generic.shared.parser;
import static org.testng.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import org.testng.annotations.Test;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample;
import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSamplesWithTypes;
/**
* @author Franz-Josef Elmer
*/
public class SampleUploadSectionsParserTest
{
private static final class Generator implements SampleUploadSectionsParser.SampleCodeGenerator
{
private int counter;
@Override
public List<String> generateCodes(int size)
{
List<String> codes = new ArrayList<>(size);
for (int i = 0; i < size; i++)
{
codes.add("S-" + counter++);
}
return codes;
}
}
@Test
public void testGenerateIdentifiersWithDefaultSpaceAndNoProjectSamples()
{
// Given
NewSamplesWithTypes swt1 = new NewSamplesWithTypes();
swt1.setNewEntities(Arrays.asList(s().defaultSpace("/MY_SPACE"),
s().experiment("/A/B/C")));
NewSamplesWithTypes swt2 = new NewSamplesWithTypes();
swt2.setNewEntities(Arrays.asList(s().defaultSpace("/ABC").experiment("/D/E/F")));
// When
SampleUploadSectionsParser.generateIdentifiers(false, "/DEFAULT", new Generator(), true, Arrays.asList(swt1, swt2));
// Then
assertEquals(extractIdentifiers(swt1).toString(), "[/MY_SPACE/S-0, /DEFAULT/S-1]");
assertEquals(extractIdentifiers(swt2).toString(), "[/ABC/S-2]");
}
@Test
public void testGenerateIdentifiersWithNoDefaultSpaceAndNoProjectSamples()
{
// Given
NewSamplesWithTypes swt1 = new NewSamplesWithTypes();
swt1.setNewEntities(Arrays.asList(s().defaultSpace("/MY_SPACE"),
s().defaultSpace("/A1").experiment("/A/B/C")));
NewSamplesWithTypes swt2 = new NewSamplesWithTypes();
swt2.setNewEntities(Arrays.asList(s().defaultSpace("/ABC").experiment("/D/E/F")));
// When
SampleUploadSectionsParser.generateIdentifiers(false, null, new Generator(), true, Arrays.asList(swt1, swt2));
// Then
assertEquals(extractIdentifiers(swt1).toString(), "[/MY_SPACE/S-0, /A1/S-1]");
assertEquals(extractIdentifiers(swt2).toString(), "[/ABC/S-2]");
}
@Test
public void testGenerateIdentifiersWithDefaultSpaceAndProjectSamples()
{
// Given
NewSamplesWithTypes swt1 = new NewSamplesWithTypes();
swt1.setNewEntities(Arrays.asList(s().defaultSpace("/MY_SPACE"),
s().experiment("/A/B/C")));
NewSamplesWithTypes swt2 = new NewSamplesWithTypes();
swt2.setNewEntities(Arrays.asList(s().defaultSpace("/ABC").experiment("/D/E/F")));
// When
SampleUploadSectionsParser.generateIdentifiers(true, "/DEFAULT", new Generator(), true, Arrays.asList(swt1, swt2));
// Then
assertEquals(extractIdentifiers(swt1).toString(), "[/MY_SPACE/S-0, /A/B/S-1]");
assertEquals(extractIdentifiers(swt2).toString(), "[/D/E/S-2]");
}
@Test
public void testGenerateIdentifiersWithNoDefaultSpaceAndProjectSamples()
{
// Given
NewSamplesWithTypes swt1 = new NewSamplesWithTypes();
swt1.setNewEntities(Arrays.asList(s().defaultSpace("/MY_SPACE"), s().defaultSpace("/A1").experiment("/A/B/C")));
NewSamplesWithTypes swt2 = new NewSamplesWithTypes();
swt2.setNewEntities(Arrays.asList(s().defaultSpace("/ABC").experiment("/D/E/F"),
s().defaultSpace("/S1").experiment("/C/D/E")));
// When
SampleUploadSectionsParser.generateIdentifiers(true, null, new Generator(), true, Arrays.asList(swt1, swt2));
// Then
assertEquals(extractIdentifiers(swt1).toString(), "[/MY_SPACE/S-0, /A/B/S-1]");
assertEquals(extractIdentifiers(swt2).toString(), "[/D/E/S-2, /C/D/S-3]");
}
private List<String> extractIdentifiers(NewSamplesWithTypes samplesWithTypes)
{
return samplesWithTypes.getNewEntities().stream().map(NewSample::getIdentifier).collect(Collectors.toList());
}
private NewSampleBuilder s()
{
return new NewSampleBuilder();
}
private static final class NewSampleBuilder extends NewSample
{
private static final long serialVersionUID = 1L;
public NewSampleBuilder defaultSpace(String defaultSpaceIdentifier)
{
setDefaultSpaceIdentifier(defaultSpaceIdentifier);
return this;
}
public NewSampleBuilder experiment(String experimentIdentifier)
{
setExperimentIdentifier(experimentIdentifier);
return this;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment