diff options
Diffstat (limited to 'python/testSrc/com/jetbrains/env/PyEnvSufficiencyTest.java')
-rw-r--r-- | python/testSrc/com/jetbrains/env/PyEnvSufficiencyTest.java | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/python/testSrc/com/jetbrains/env/PyEnvSufficiencyTest.java b/python/testSrc/com/jetbrains/env/PyEnvSufficiencyTest.java new file mode 100644 index 000000000000..83846a1bb5f5 --- /dev/null +++ b/python/testSrc/com/jetbrains/env/PyEnvSufficiencyTest.java @@ -0,0 +1,51 @@ +package com.jetbrains.env; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.util.text.StringUtil; +import com.intellij.testFramework.UsefulTestCase; + +import java.util.List; +import java.util.Set; + +/** + * @author traff + */ +public class PyEnvSufficiencyTest extends PyEnvTestCase { + private static final List<String> BASE_TAGS = + ImmutableList.<String>builder().add("python3", "django", "jython", "ipython", "ipython011", "ipython012", "nose", "pytest").build(); + + public void testSufficiency() { + if (UsefulTestCase.IS_UNDER_TEAMCITY && IS_ENV_CONFIGURATION) { + Set<String> tags = Sets.newHashSet(); + List<String> roots = getPythonRoots(); + if (roots.size() == 0) { + return; // not on env agent + } + for (String root : roots) { + tags.addAll(loadEnvTags(root)); + } + + List<String> missing = Lists.newArrayList(); + for (String tag : necessaryTags()) { + if (!tags.contains(tag)) { + missing.add(tag); + } + } + + + assertEmpty("Agent is missing environments: " + StringUtil.join(missing, ", "), missing); + } + } + + private static List<String> necessaryTags() { + if (SystemInfo.isWindows) { + return ImmutableList.<String>builder().addAll(BASE_TAGS).add("iron").build(); + } + else { + return ImmutableList.<String>builder().addAll(BASE_TAGS).add("packaging").build(); + } + } +} |