Search in sources :

Example 1 with ParseResult

use of com.jetbrains.python.inspections.PyNewStyleStringFormatParser.ParseResult in project intellij-community by JetBrains.

the class PyStringFormatParserTest method testNewStyleAutoPosition.

public void testNewStyleAutoPosition() {
    final ParseResult result = PyNewStyleStringFormatParser.parse("'{foo} {} {bar} {0} {}'");
    final List<Field> topLevelFields = result.getFields();
    assertSize(5, topLevelFields);
    assertEquals("foo", topLevelFields.get(0).getMappingKey());
    assertNull(topLevelFields.get(0).getPosition());
    assertNull(topLevelFields.get(0).getAutoPosition());
    assertNull(topLevelFields.get(1).getMappingKey());
    assertNull(topLevelFields.get(1).getPosition());
    assertEquals(0, (int) topLevelFields.get(1).getAutoPosition());
    assertEquals("bar", topLevelFields.get(2).getMappingKey());
    assertNull(topLevelFields.get(2).getPosition());
    assertNull(topLevelFields.get(2).getAutoPosition());
    assertNull(topLevelFields.get(3).getMappingKey());
    assertEquals(0, (int) topLevelFields.get(3).getPosition());
    assertNull(topLevelFields.get(3).getAutoPosition());
    assertNull(topLevelFields.get(4).getMappingKey());
    assertNull(topLevelFields.get(4).getPosition());
    assertEquals(1, (int) topLevelFields.get(4).getAutoPosition());
}
Also used : Field(com.jetbrains.python.inspections.PyNewStyleStringFormatParser.Field) ParseResult(com.jetbrains.python.inspections.PyNewStyleStringFormatParser.ParseResult)

Example 2 with ParseResult

use of com.jetbrains.python.inspections.PyNewStyleStringFormatParser.ParseResult in project intellij-community by JetBrains.

the class PyStringFormatParserTest method testNewStyleTooNestedFields.

public void testNewStyleTooNestedFields() {
    final ParseResult result = PyNewStyleStringFormatParser.parse("'{:{:{:{}}}} {}'");
    final List<Field> topLevelFields = result.getFields();
    assertSize(2, topLevelFields);
    assertSize(5, result.getAllFields());
    assertOrderedEquals(result.getAllFields().stream().map(Field::getDepth).toArray(), 1, 2, 3, 4, 1);
    assertOrderedEquals(result.getAllFields().stream().map(SubstitutionChunk::getAutoPosition).toArray(), 0, 1, 2, 3, 4);
}
Also used : Field(com.jetbrains.python.inspections.PyNewStyleStringFormatParser.Field) ParseResult(com.jetbrains.python.inspections.PyNewStyleStringFormatParser.ParseResult)

Example 3 with ParseResult

use of com.jetbrains.python.inspections.PyNewStyleStringFormatParser.ParseResult in project intellij-community by JetBrains.

the class PyStringFormatParserTest method doParseAndGetFirstField.

@NotNull
private static Field doParseAndGetFirstField(@NotNull String nodeText) {
    final ParseResult result = PyNewStyleStringFormatParser.parse(nodeText);
    final List<Field> topLevelFields = result.getFields();
    assertSize(1, topLevelFields);
    return topLevelFields.get(0);
}
Also used : Field(com.jetbrains.python.inspections.PyNewStyleStringFormatParser.Field) ParseResult(com.jetbrains.python.inspections.PyNewStyleStringFormatParser.ParseResult) NotNull(org.jetbrains.annotations.NotNull)

Aggregations

Field (com.jetbrains.python.inspections.PyNewStyleStringFormatParser.Field)3 ParseResult (com.jetbrains.python.inspections.PyNewStyleStringFormatParser.ParseResult)3 NotNull (org.jetbrains.annotations.NotNull)1