Rules: indentation: Add the 'indent-sequences' option
Using either 'yes', 'no' or 'whatever', the user will be able to choose whether to force block sequence items to be indented, to force them not to be indented, or don't care, respectively.
This commit is contained in:
@@ -42,7 +42,7 @@ class ColonTestCase(RuleTestCase):
|
||||
' - p: kdjf\n'
|
||||
' - q: val0\n'
|
||||
' - q2:\n'
|
||||
' - val1\n'
|
||||
' - val1\n'
|
||||
'...\n', conf)
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
@@ -67,7 +67,7 @@ class ColonTestCase(RuleTestCase):
|
||||
' - o: {k1: v1}\n'
|
||||
' - o: {k1: v1}\n'
|
||||
' - q2:\n'
|
||||
' - val1\n'
|
||||
' - val1\n'
|
||||
'...\n', conf)
|
||||
self.check('---\n'
|
||||
'a: {b: {c: d, e : f}}\n', conf)
|
||||
@@ -94,7 +94,7 @@ class ColonTestCase(RuleTestCase):
|
||||
'...\n', conf, problem=(2, 4))
|
||||
self.check('---\n'
|
||||
'- lib :\n'
|
||||
' - var\n'
|
||||
' - var\n'
|
||||
'...\n', conf, problem=(2, 6))
|
||||
self.check('---\n'
|
||||
'a: {b: {c : d, e : f}}\n', conf,
|
||||
|
||||
@@ -115,7 +115,7 @@ class CommentsIndentationTestCase(RuleTestCase):
|
||||
' # comments\n'
|
||||
' b: 2\n', conf)
|
||||
self.check('---\n'
|
||||
'mylist:\n'
|
||||
'my list for today:\n'
|
||||
' - todo 1\n'
|
||||
' - todo 2\n'
|
||||
' # commented for now\n'
|
||||
|
||||
@@ -36,12 +36,12 @@ class HyphenTestCase(RuleTestCase):
|
||||
'- elem2\n', conf)
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
'- elem1\n'
|
||||
'- elem2\n', conf)
|
||||
' - elem1\n'
|
||||
' - elem2\n', conf)
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
'- elem1\n'
|
||||
'- elem2\n', conf)
|
||||
' - elem1\n'
|
||||
' - elem2\n', conf)
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' subobject:\n'
|
||||
@@ -69,12 +69,12 @@ class HyphenTestCase(RuleTestCase):
|
||||
'- elem2\n', conf, problem=(2, 3))
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
'- elem1\n'
|
||||
'- elem2\n', conf, problem=(4, 3))
|
||||
' - elem1\n'
|
||||
' - elem2\n', conf, problem=(4, 5))
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
'- elem1\n'
|
||||
'- elem2\n', conf, problem1=(3, 3), problem2=(4, 3))
|
||||
' - elem1\n'
|
||||
' - elem2\n', conf, problem1=(3, 5), problem2=(4, 5))
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' subobject:\n'
|
||||
|
||||
@@ -48,7 +48,20 @@ class IndentationTestCase(RuleTestCase):
|
||||
'...\n', conf)
|
||||
|
||||
def test_one_space(self):
|
||||
conf = 'indentation: {spaces: 1}'
|
||||
conf = 'indentation: {spaces: 1, indent-sequences: no}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' k1:\n'
|
||||
' - a\n'
|
||||
' - b\n'
|
||||
' k2: v2\n'
|
||||
' k3:\n'
|
||||
' - name: Unix\n'
|
||||
' date: 1969\n'
|
||||
' - name: Linux\n'
|
||||
' date: 1991\n'
|
||||
'...\n', conf)
|
||||
conf = 'indentation: {spaces: 1, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' k1:\n'
|
||||
@@ -63,7 +76,20 @@ class IndentationTestCase(RuleTestCase):
|
||||
'...\n', conf)
|
||||
|
||||
def test_two_spaces(self):
|
||||
conf = 'indentation: {spaces: 2}'
|
||||
conf = 'indentation: {spaces: 2, indent-sequences: no}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' k1:\n'
|
||||
' - a\n'
|
||||
' - b\n'
|
||||
' k2: v2\n'
|
||||
' k3:\n'
|
||||
' - name: Unix\n'
|
||||
' date: 1969\n'
|
||||
' - name: Linux\n'
|
||||
' date: 1991\n'
|
||||
'...\n', conf)
|
||||
conf = 'indentation: {spaces: 2, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' k1:\n'
|
||||
@@ -78,7 +104,20 @@ class IndentationTestCase(RuleTestCase):
|
||||
'...\n', conf)
|
||||
|
||||
def test_three_spaces(self):
|
||||
conf = 'indentation: {spaces: 3}'
|
||||
conf = 'indentation: {spaces: 3, indent-sequences: no}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' k1:\n'
|
||||
' - a\n'
|
||||
' - b\n'
|
||||
' k2: v2\n'
|
||||
' k3:\n'
|
||||
' - name: Unix\n'
|
||||
' date: 1969\n'
|
||||
' - name: Linux\n'
|
||||
' date: 1991\n'
|
||||
'...\n', conf)
|
||||
conf = 'indentation: {spaces: 3, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' k1:\n'
|
||||
@@ -92,8 +131,122 @@ class IndentationTestCase(RuleTestCase):
|
||||
' date: 1991\n'
|
||||
'...\n', conf)
|
||||
|
||||
def test_under_indented(self):
|
||||
def test_indent_sequences_whatever(self):
|
||||
conf = 'indentation: {spaces: 4, indent-sequences: whatever}'
|
||||
self.check('---\n'
|
||||
'list one:\n'
|
||||
'- 1\n'
|
||||
'- 2\n'
|
||||
'- 3\n'
|
||||
'list two:\n'
|
||||
' - a\n'
|
||||
' - b\n'
|
||||
' - c\n', conf)
|
||||
self.check('---\n'
|
||||
'list one:\n'
|
||||
' - 1\n'
|
||||
' - 2\n'
|
||||
' - 3\n'
|
||||
'list two:\n'
|
||||
' - a\n'
|
||||
' - b\n'
|
||||
' - c\n', conf, problem=(3, 3))
|
||||
self.check('---\n'
|
||||
'list one:\n'
|
||||
'- 1\n'
|
||||
'- 2\n'
|
||||
'- 3\n'
|
||||
'list two:\n'
|
||||
' - a\n'
|
||||
' - b\n'
|
||||
' - c\n', conf, problem=(7, 3))
|
||||
self.check('---\n'
|
||||
'list:\n'
|
||||
' - 1\n'
|
||||
' - 2\n'
|
||||
' - 3\n'
|
||||
'- a\n'
|
||||
'- b\n'
|
||||
'- c\n', conf, problem=(6, 1, 'syntax'))
|
||||
|
||||
def test_flow_mappings(self):
|
||||
conf = 'indentation: {spaces: 2}'
|
||||
self.check('---\n'
|
||||
'a: {x: 1,\n'
|
||||
' y,\n'
|
||||
' z: 1}\n', conf)
|
||||
self.check('---\n'
|
||||
'a: {x: 1,\n'
|
||||
' y,\n'
|
||||
' z: 1}\n', conf, problem=(3, 4))
|
||||
self.check('---\n'
|
||||
'a: {x: 1,\n'
|
||||
' y,\n'
|
||||
' z: 1}\n', conf, problem=(3, 6))
|
||||
self.check('---\n'
|
||||
'a: {x: 1,\n'
|
||||
' y, z: 1\n'
|
||||
'}\n', conf, problem=(3, 3))
|
||||
self.check('---\n'
|
||||
'a: {\n'
|
||||
' x: 1,\n'
|
||||
' y, z: 1\n'
|
||||
'}\n', conf)
|
||||
self.check('---\n'
|
||||
'a: {\n'
|
||||
' x: 1,\n'
|
||||
' y, z: 1}\n', conf)
|
||||
self.check('---\n'
|
||||
'a: {\n'
|
||||
' x: 1,\n'
|
||||
' y, z: 1\n'
|
||||
'}\n', conf, problem=(3, 4))
|
||||
self.check('---\n'
|
||||
'a: {\n'
|
||||
' x: 1,\n'
|
||||
' y, z: 1\n'
|
||||
' }\n', conf, problem=(5, 3))
|
||||
|
||||
def test_flow_sequences(self):
|
||||
conf = 'indentation: {spaces: 2}'
|
||||
self.check('---\n'
|
||||
'a: [x,\n'
|
||||
' y,\n'
|
||||
' z]\n', conf)
|
||||
self.check('---\n'
|
||||
'a: [x,\n'
|
||||
' y,\n'
|
||||
' z]\n', conf, problem=(3, 4))
|
||||
self.check('---\n'
|
||||
'a: [x,\n'
|
||||
' y,\n'
|
||||
' z]\n', conf, problem=(3, 6))
|
||||
self.check('---\n'
|
||||
'a: [x,\n'
|
||||
' y, z\n'
|
||||
']\n', conf, problem=(3, 3))
|
||||
self.check('---\n'
|
||||
'a: [\n'
|
||||
' x,\n'
|
||||
' y, z\n'
|
||||
']\n', conf)
|
||||
self.check('---\n'
|
||||
'a: [\n'
|
||||
' x,\n'
|
||||
' y, z]\n', conf)
|
||||
self.check('---\n'
|
||||
'a: [\n'
|
||||
' x,\n'
|
||||
' y, z\n'
|
||||
']\n', conf, problem=(3, 4))
|
||||
self.check('---\n'
|
||||
'a: [\n'
|
||||
' x,\n'
|
||||
' y, z\n'
|
||||
' ]\n', conf, problem=(5, 3))
|
||||
|
||||
def test_under_indented(self):
|
||||
conf = 'indentation: {spaces: 2, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' val: 1\n'
|
||||
@@ -109,7 +262,7 @@ class IndentationTestCase(RuleTestCase):
|
||||
' - name: Unix\n'
|
||||
' date: 1969\n'
|
||||
'...\n', conf, problem=(5, 6, 'syntax'))
|
||||
conf = 'indentation: {spaces: 4}'
|
||||
conf = 'indentation: {spaces: 4, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' val: 1\n'
|
||||
@@ -127,7 +280,7 @@ class IndentationTestCase(RuleTestCase):
|
||||
'...\n', conf, problem=(5, 10, 'syntax'))
|
||||
|
||||
def test_over_indented(self):
|
||||
conf = 'indentation: {spaces: 2}'
|
||||
conf = 'indentation: {spaces: 2, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' val: 1\n'
|
||||
@@ -143,7 +296,7 @@ class IndentationTestCase(RuleTestCase):
|
||||
' - name: Unix\n'
|
||||
' date: 1969\n'
|
||||
'...\n', conf, problem=(5, 12, 'syntax'))
|
||||
conf = 'indentation: {spaces: 4}'
|
||||
conf = 'indentation: {spaces: 4, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'object:\n'
|
||||
' val: 1\n'
|
||||
@@ -165,7 +318,7 @@ class IndentationTestCase(RuleTestCase):
|
||||
self.check('---\n'
|
||||
' - el1\n'
|
||||
' - el2:\n'
|
||||
' - subel\n'
|
||||
' - subel\n'
|
||||
'...\n', conf,
|
||||
problem=(2, 3))
|
||||
self.check('---\n'
|
||||
@@ -174,24 +327,32 @@ class IndentationTestCase(RuleTestCase):
|
||||
' - name: Linux\n'
|
||||
' date: 1991\n'
|
||||
'...\n', conf, problem=(5, 16, 'syntax'))
|
||||
conf = 'indentation: {spaces: 4, indent-sequences: whatever}'
|
||||
self.check('---\n'
|
||||
' - el1\n'
|
||||
' - el2:\n'
|
||||
' - subel\n'
|
||||
'...\n', conf,
|
||||
problem=(2, 3))
|
||||
|
||||
def test_multi_lines(self):
|
||||
conf = 'indentation: {spaces: 2, indent-sequences: yes}'
|
||||
self.check('---\n'
|
||||
'long_string: >\n'
|
||||
' bla bla blah\n'
|
||||
' blah bla bla\n'
|
||||
'...\n', None)
|
||||
'...\n', conf)
|
||||
self.check('---\n'
|
||||
'- long_string: >\n'
|
||||
' bla bla blah\n'
|
||||
' blah bla bla\n'
|
||||
'...\n', None)
|
||||
'...\n', conf)
|
||||
self.check('---\n'
|
||||
'obj:\n'
|
||||
' - long_string: >\n'
|
||||
' bla bla blah\n'
|
||||
' blah bla bla\n'
|
||||
'...\n', None)
|
||||
'...\n', conf)
|
||||
|
||||
def test_empty_value(self):
|
||||
conf = 'indentation: {spaces: 2}'
|
||||
@@ -233,8 +394,23 @@ class IndentationTestCase(RuleTestCase):
|
||||
'- o:\n'
|
||||
' k1: v1\n'
|
||||
'...\n', conf, problem=(3, 8))
|
||||
self.check('---\n'
|
||||
'- - - - item\n'
|
||||
' - elem 1\n'
|
||||
' - elem 2\n'
|
||||
' - - - - - very nested: a\n'
|
||||
' key: value\n'
|
||||
'...\n', conf)
|
||||
self.check('---\n'
|
||||
' - - - - item\n'
|
||||
' - elem 1\n'
|
||||
' - elem 2\n'
|
||||
' - - - - - very nested: a\n'
|
||||
' key: value\n'
|
||||
'...\n', conf, problem=(2, 2))
|
||||
|
||||
def test_return(self):
|
||||
conf = 'indentation: {spaces: 2}'
|
||||
self.check('---\n'
|
||||
'a:\n'
|
||||
' b:\n'
|
||||
@@ -243,19 +419,19 @@ class IndentationTestCase(RuleTestCase):
|
||||
' e:\n'
|
||||
' f:\n'
|
||||
'g:\n'
|
||||
'...\n', None)
|
||||
'...\n', conf)
|
||||
self.check('---\n'
|
||||
'a:\n'
|
||||
' b:\n'
|
||||
' c:\n'
|
||||
' d:\n'
|
||||
'...\n', None, problem=(5, 4, 'syntax'))
|
||||
'...\n', conf, problem=(5, 4, 'syntax'))
|
||||
self.check('---\n'
|
||||
'a:\n'
|
||||
' b:\n'
|
||||
' c:\n'
|
||||
' d:\n'
|
||||
'...\n', None, problem=(5, 2, 'syntax'))
|
||||
'...\n', conf, problem=(5, 2, 'syntax'))
|
||||
|
||||
def test_first_line(self):
|
||||
conf = ('indentation: {spaces: 2}\n'
|
||||
|
||||
Reference in New Issue
Block a user