type migration tests fixed
[idea/community.git] / python / src / com / jetbrains / python / testing / attest / PythonAtTestCommandLineState.java
1 /*
2  * Copyright 2000-2014 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.jetbrains.python.testing.attest;
17
18 import com.intellij.execution.runners.ExecutionEnvironment;
19 import com.intellij.openapi.util.io.FileUtil;
20 import com.jetbrains.python.PythonHelper;
21 import com.jetbrains.python.testing.PythonTestCommandLineStateBase;
22
23 import java.util.ArrayList;
24 import java.util.List;
25
26 /**
27  * User: catherine
28  */
29 public class PythonAtTestCommandLineState extends PythonTestCommandLineStateBase {
30   private final PythonAtTestRunConfiguration myConfig;
31
32
33   public PythonAtTestCommandLineState(PythonAtTestRunConfiguration runConfiguration, ExecutionEnvironment env) {
34     super(runConfiguration, env);
35     myConfig = runConfiguration;
36   }
37
38   @Override
39   protected PythonHelper getRunner() {
40     return PythonHelper.ATTEST;
41   }
42
43   protected List<String> getTestSpecs() {
44     List<String> specs = new ArrayList<String>();
45
46     final String scriptName = FileUtil.toSystemDependentName(myConfig.getScriptName());
47     switch (myConfig.getTestType()) {
48       case TEST_SCRIPT:
49         specs.add(scriptName);
50         break;
51       case TEST_CLASS:
52         specs.add(scriptName + "::" + myConfig.getClassName());
53         break;
54       case TEST_METHOD:
55         specs.add(scriptName + "::" + myConfig.getClassName() + "::" + myConfig.getMethodName());
56         break;
57       case TEST_FOLDER:
58         final String folderName = FileUtil.toSystemDependentName(myConfig.getFolderName() + "/");
59         if (!myConfig.getPattern().isEmpty()) {
60           specs.add(folderName + ";" + myConfig.getPattern());
61         }
62         else
63           specs.add(folderName);
64         break;
65       case TEST_FUNCTION:
66         specs.add(scriptName + "::::" + myConfig.getMethodName());
67         break;
68       default:
69         throw new IllegalArgumentException("Unknown test type: " + myConfig.getTestType());
70     }
71
72     return specs;
73   }
74 }