PY-20801 Handle "with" statements and "for" loops by declaring type beforehand
[idea/community.git] / python / testSrc / com / jetbrains / python / intentions / PyConvertTypeCommentToVariableAnnotationIntentionTest.java
1 /*
2  * Copyright 2000-2016 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.intentions;
17
18 import com.jetbrains.python.PyBundle;
19 import com.jetbrains.python.psi.LanguageLevel;
20
21 public class PyConvertTypeCommentToVariableAnnotationIntentionTest extends PyIntentionTestCase {
22   private void doPositiveTest() {
23     doTest(PyBundle.message("INTN.convert.type.comment.to.variable.annotation.text"), LanguageLevel.PYTHON36);
24   }
25
26   private void doNegativeTest() {
27     runWithLanguageLevel(LanguageLevel.PYTHON36, () -> {
28       doNegativeTest(PyBundle.message("INTN.convert.type.comment.to.variable.annotation.text"));
29     });
30   }
31
32   public void testSimpleAssignment() {
33     doPositiveTest();
34   }
35
36   public void testBadLanguageLevel() {
37     runWithLanguageLevel(LanguageLevel.PYTHON35, () -> {
38       doNegativeTest(PyBundle.message("INTN.convert.type.comment.to.variable.annotation.text"));
39     });
40   }
41
42   public void testChainedAssignment() {
43     doNegativeTest();
44   }
45
46   public void testAssignmentWithUnpacking() {
47     doNegativeTest();
48   }
49
50   public void testMultilineAssignment() {
51     doPositiveTest();
52   }
53
54   public void testSimpleForLoop() {
55     doPositiveTest();
56   }
57
58   public void testSimpleWithStatement() {
59     doPositiveTest();
60   }
61
62   public void testForLoopWithUnpacking() {
63     doNegativeTest();
64   }
65
66   public void testWithStatementWithUnpacking() {
67     doNegativeTest();
68   }
69
70   public void testWithStatementWithMultipleWithItems() {
71     doNegativeTest();
72   }
73 }