|
|
@ -381,6 +381,141 @@ class IndentationStackTestCase(RuleTestCase):
|
|
|
|
# missing BEnd here
|
|
|
|
# missing BEnd here
|
|
|
|
' BEnd \n')
|
|
|
|
' BEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_flows_imbrication(self):
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('[[val]]\n'),
|
|
|
|
|
|
|
|
'FSeqStart F_SEQ:1\n'
|
|
|
|
|
|
|
|
'FSeqStart F_SEQ:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' Scalar F_SEQ:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' FSeqEnd F_SEQ:1\n'
|
|
|
|
|
|
|
|
' FSeqEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('[[val], [val2]]\n'),
|
|
|
|
|
|
|
|
'FSeqStart F_SEQ:1\n'
|
|
|
|
|
|
|
|
'FSeqStart F_SEQ:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' Scalar F_SEQ:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' FSeqEnd F_SEQ:1\n'
|
|
|
|
|
|
|
|
' FEntry F_SEQ:1\n'
|
|
|
|
|
|
|
|
'FSeqStart F_SEQ:1 F_SEQ:9\n'
|
|
|
|
|
|
|
|
' Scalar F_SEQ:1 F_SEQ:9\n'
|
|
|
|
|
|
|
|
' FSeqEnd F_SEQ:1\n'
|
|
|
|
|
|
|
|
' FSeqEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('{{key}}\n'),
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1\n'
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1 F_MAP:2\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1 F_MAP:2\n'
|
|
|
|
|
|
|
|
' FMapEnd F_MAP:1\n'
|
|
|
|
|
|
|
|
' FMapEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('[key]: value\n'),
|
|
|
|
|
|
|
|
'BMapStart B_MAP:0\n'
|
|
|
|
|
|
|
|
' Key B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
'FSeqStart B_MAP:0 KEY:0 F_SEQ:1\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0 KEY:0 F_SEQ:1\n'
|
|
|
|
|
|
|
|
' FSeqEnd B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
' Value B_MAP:0 KEY:0 VAL:7\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0\n'
|
|
|
|
|
|
|
|
' BEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('[[key]]: value\n'),
|
|
|
|
|
|
|
|
'BMapStart B_MAP:0\n'
|
|
|
|
|
|
|
|
' Key B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
'FSeqStart B_MAP:0 KEY:0 F_SEQ:1\n'
|
|
|
|
|
|
|
|
'FSeqStart B_MAP:0 KEY:0 F_SEQ:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0 KEY:0 F_SEQ:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' FSeqEnd B_MAP:0 KEY:0 F_SEQ:1\n'
|
|
|
|
|
|
|
|
' FSeqEnd B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
' Value B_MAP:0 KEY:0 VAL:9\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0\n'
|
|
|
|
|
|
|
|
' BEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('{key}: value\n'),
|
|
|
|
|
|
|
|
'BMapStart B_MAP:0\n'
|
|
|
|
|
|
|
|
' Key B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
'FMapStart B_MAP:0 KEY:0 F_MAP:1\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0 KEY:0 F_MAP:1\n'
|
|
|
|
|
|
|
|
' FMapEnd B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
' Value B_MAP:0 KEY:0 VAL:7\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0\n'
|
|
|
|
|
|
|
|
' BEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('{key: value}: value\n'),
|
|
|
|
|
|
|
|
'BMapStart B_MAP:0\n'
|
|
|
|
|
|
|
|
' Key B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
'FMapStart B_MAP:0 KEY:0 F_MAP:1\n'
|
|
|
|
|
|
|
|
' Key B_MAP:0 KEY:0 F_MAP:1 KEY:1\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0 KEY:0 F_MAP:1 KEY:1\n'
|
|
|
|
|
|
|
|
' Value B_MAP:0 KEY:0 F_MAP:1 KEY:1 VAL:6\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0 KEY:0 F_MAP:1\n'
|
|
|
|
|
|
|
|
' FMapEnd B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
' Value B_MAP:0 KEY:0 VAL:14\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0\n'
|
|
|
|
|
|
|
|
' BEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('{{key}}: value\n'),
|
|
|
|
|
|
|
|
'BMapStart B_MAP:0\n'
|
|
|
|
|
|
|
|
' Key B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
'FMapStart B_MAP:0 KEY:0 F_MAP:1\n'
|
|
|
|
|
|
|
|
'FMapStart B_MAP:0 KEY:0 F_MAP:1 F_MAP:2\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0 KEY:0 F_MAP:1 F_MAP:2\n'
|
|
|
|
|
|
|
|
' FMapEnd B_MAP:0 KEY:0 F_MAP:1\n'
|
|
|
|
|
|
|
|
' FMapEnd B_MAP:0 KEY:0\n'
|
|
|
|
|
|
|
|
' Value B_MAP:0 KEY:0 VAL:9\n'
|
|
|
|
|
|
|
|
' Scalar B_MAP:0\n'
|
|
|
|
|
|
|
|
' BEnd \n')
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('{{key}: val, {key2}: {val2}}\n'),
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1\n'
|
|
|
|
|
|
|
|
' Key F_MAP:1 KEY:1\n'
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1 KEY:1 F_MAP:2\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1 KEY:1 F_MAP:2\n'
|
|
|
|
|
|
|
|
' FMapEnd F_MAP:1 KEY:1\n'
|
|
|
|
|
|
|
|
' Value F_MAP:1 KEY:1 VAL:8\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1\n'
|
|
|
|
|
|
|
|
' FEntry F_MAP:1\n'
|
|
|
|
|
|
|
|
' Key F_MAP:1 KEY:1\n'
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1 KEY:1 F_MAP:14\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1 KEY:1 F_MAP:14\n'
|
|
|
|
|
|
|
|
' FMapEnd F_MAP:1 KEY:1\n'
|
|
|
|
|
|
|
|
' Value F_MAP:1 KEY:1 VAL:21\n'
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1 KEY:1 VAL:21 F_MAP:22\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1 KEY:1 VAL:21 F_MAP:22\n'
|
|
|
|
|
|
|
|
' FMapEnd F_MAP:1\n'
|
|
|
|
|
|
|
|
' FMapEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.assertMultiLineEqual(
|
|
|
|
|
|
|
|
self.full_stack('{[{{[val]}}, [{[key]: val2}]]}\n'),
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1\n'
|
|
|
|
|
|
|
|
'FSeqStart F_MAP:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1 F_SEQ:2 F_MAP:3\n'
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1 F_SEQ:2 F_MAP:3 F_MAP:4\n'
|
|
|
|
|
|
|
|
'FSeqStart F_MAP:1 F_SEQ:2 F_MAP:3 F_MAP:4 F_SEQ:5\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1 F_SEQ:2 F_MAP:3 F_MAP:4 F_SEQ:5\n'
|
|
|
|
|
|
|
|
' FSeqEnd F_MAP:1 F_SEQ:2 F_MAP:3 F_MAP:4\n'
|
|
|
|
|
|
|
|
' FMapEnd F_MAP:1 F_SEQ:2 F_MAP:3\n'
|
|
|
|
|
|
|
|
' FMapEnd F_MAP:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' FEntry F_MAP:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
'FSeqStart F_MAP:1 F_SEQ:2 F_SEQ:14\n'
|
|
|
|
|
|
|
|
'FMapStart F_MAP:1 F_SEQ:2 F_SEQ:14 F_MAP:15\n'
|
|
|
|
|
|
|
|
' Key F_MAP:1 F_SEQ:2 F_SEQ:14 F_MAP:15 KEY:15\n'
|
|
|
|
|
|
|
|
'FSeqStart F_MAP:1 F_SEQ:2 F_SEQ:14 F_MAP:15 KEY:15 F_SEQ:16\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1 F_SEQ:2 F_SEQ:14 F_MAP:15 KEY:15 F_SEQ:16\n'
|
|
|
|
|
|
|
|
' FSeqEnd F_MAP:1 F_SEQ:2 F_SEQ:14 F_MAP:15 KEY:15\n'
|
|
|
|
|
|
|
|
' Value F_MAP:1 F_SEQ:2 F_SEQ:14 F_MAP:15 KEY:15 VAL:22\n'
|
|
|
|
|
|
|
|
' Scalar F_MAP:1 F_SEQ:2 F_SEQ:14 F_MAP:15\n'
|
|
|
|
|
|
|
|
' FMapEnd F_MAP:1 F_SEQ:2 F_SEQ:14\n'
|
|
|
|
|
|
|
|
' FSeqEnd F_MAP:1 F_SEQ:2\n'
|
|
|
|
|
|
|
|
' FSeqEnd F_MAP:1\n'
|
|
|
|
|
|
|
|
' FMapEnd \n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class IndentationTestCase(RuleTestCase):
|
|
|
|
class IndentationTestCase(RuleTestCase):
|
|
|
|
rule_id = 'indentation'
|
|
|
|
rule_id = 'indentation'
|
|
|
@ -1288,6 +1423,48 @@ class IndentationTestCase(RuleTestCase):
|
|
|
|
'- Clark Evans\n'
|
|
|
|
'- Clark Evans\n'
|
|
|
|
'- Ingy döt Net\n', conf)
|
|
|
|
'- Ingy döt Net\n', conf)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_flows_imbrication(self):
|
|
|
|
|
|
|
|
conf = 'indentation: {spaces: consistent}'
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'[val]: value\n', conf)
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'{key}: value\n', conf)
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'{key: val}: value\n', conf)
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'[[val]]: value\n', conf)
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'{{key}}: value\n', conf)
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'{{key: val1}: val2}: value\n', conf)
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'- [val, {{key: val}: val}]: value\n'
|
|
|
|
|
|
|
|
'- {[val,\n'
|
|
|
|
|
|
|
|
' {{key: val}: val}]}\n'
|
|
|
|
|
|
|
|
'- {[val,\n'
|
|
|
|
|
|
|
|
' {{key: val,\n'
|
|
|
|
|
|
|
|
' key2}}]}\n'
|
|
|
|
|
|
|
|
'- {{{{{moustaches}}}}}\n'
|
|
|
|
|
|
|
|
'- {{{{{moustache,\n'
|
|
|
|
|
|
|
|
' moustache},\n'
|
|
|
|
|
|
|
|
' moustache}},\n'
|
|
|
|
|
|
|
|
' moustache}}\n', conf)
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'- {[val,\n'
|
|
|
|
|
|
|
|
' {{key: val}: val}]}\n',
|
|
|
|
|
|
|
|
conf, problem=(3, 6))
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'- {[val,\n'
|
|
|
|
|
|
|
|
' {{key: val,\n'
|
|
|
|
|
|
|
|
' key2}}]}\n',
|
|
|
|
|
|
|
|
conf, problem=(4, 6))
|
|
|
|
|
|
|
|
self.check('---\n'
|
|
|
|
|
|
|
|
'- {{{{{moustache,\n'
|
|
|
|
|
|
|
|
' moustache},\n'
|
|
|
|
|
|
|
|
' moustache}},\n'
|
|
|
|
|
|
|
|
' moustache}}\n',
|
|
|
|
|
|
|
|
conf, problem1=(4, 8), problem2=(5, 4))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ScalarIndentationTestCase(RuleTestCase):
|
|
|
|
class ScalarIndentationTestCase(RuleTestCase):
|
|
|
|
rule_id = 'indentation'
|
|
|
|
rule_id = 'indentation'
|
|
|
|