PY-31442 Add test cases for various scenarios of preliminary terminated f-strings

This commit is contained in:
Mikhail Golubev
2018-08-27 18:55:12 +03:00
parent 0300a411d6
commit 815d919abb
21 changed files with 100 additions and 0 deletions

View File

@@ -0,0 +1 @@
s = f'{42:'}'

View File

@@ -0,0 +1 @@
s = f'foo'bar'

View File

@@ -0,0 +1 @@
s = f'{f"{42:'}"}'

View File

@@ -0,0 +1 @@
s = f'foo{f"baz'quux"}bar'

View File

@@ -0,0 +1 @@
s = f'foo{f"'"}baz'

View File

@@ -0,0 +1 @@
s = f'{42:{f"'"}}'

View File

@@ -0,0 +1 @@
s = f'{f"""{f"'"}"""}'

View File

@@ -0,0 +1 @@
s = f'{f"""{42:f"'"}"""}'

View File

@@ -0,0 +1 @@
s = f'{f"""{"'"}"""}'

View File

@@ -0,0 +1 @@
s = f'{f"""{42:"'"}"""}'

View File

@@ -0,0 +1 @@
s = f'foo{"'"}baz'

View File

@@ -0,0 +1 @@
s = f'{42:{"'"}}'

View File

@@ -0,0 +1 @@
s = f'foo{f'bar'}baz'

View File

@@ -0,0 +1 @@
s = f'{42:{f'foo'}}'

View File

@@ -0,0 +1 @@
s = f'{f"{f'foo'}"}'

View File

@@ -0,0 +1 @@
s = f'{f"{42:f'foo'}"}'

View File

@@ -0,0 +1 @@
s = f'{f"{'foo'}"}'

View File

@@ -0,0 +1 @@
s = f'{f"{42:'foo'}"}'

View File

@@ -0,0 +1 @@
s = f'foo{'bar'}baz'

View File

@@ -0,0 +1 @@
s = f'{42:{'foo'}}'

View File

@@ -597,6 +597,86 @@ public class PythonParsingTest extends ParsingTestCase {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfNestedStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideNestedStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfFStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideFStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfNestedFStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideNestedFStringLiteral() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfNestedStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideNestedStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfFStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideFStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteOfNestedFStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInsideNestedFStringLiteralInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInLiteralPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInNestedLiteralPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
public void testFStringTerminatedByQuoteInNestedFormatPart() {
doTest(LanguageLevel.PYTHON36);
}
// PY-19036
public void testAwaitInNonAsyncNestedFunction() {
doTest(LanguageLevel.PYTHON35);