blob: 01693153780753be038b43a62cc345749529ad7a [file]
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
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 org.junit.Test;
import java.util.List;
import java.util.Set;
import static com.intellij.testFramework.UsefulTestCase.assertEmpty;
public class PyEnvSufficiencyTest extends PyEnvTestCase {
private static final List<String> BASE_TAGS =
ImmutableList.<String>builder().add("python3", "django", "ipython", "nose", "pytest").build();
@Test
public void testSufficiency() {
if (UsefulTestCase.IS_UNDER_TEAMCITY && SETTINGS.isEnvConfiguration()) {
checkStaging();
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();
}
}
}