gecko-dev/testing/mozharness/manifestparser
Andrew Halberstadt 57887f2601 Bug 1328830 - [manifestparser] Check line continuation before looking for next key, r=jmaher
Currently manifestparser will only look for line continuations *after* looking for a key. This means
that line continuations cannot contain key separators. For example, this:

    [test]
    foo=
      bar=baz

gets treated as:

    {'name': 'test', 'foo': '', 'bar': 'baz'}

Here, bar=baz will be treated as a new key/value pair despite the indentation. This patch switches
the order around, so we look for a continuation first. Now, it is only treated as a continuation if
the indent is greater than the indent of the preceding key.

So this manifest:

    [test]
    foo=bar
      baz=fleem

is a continuation and results in:

    {'name': 'test', 'foo': 'bar\nbaz=fleem'}

But this manifest:

    [test]
      foo=bar
      baz=fleem

is not a continuation, and yields:

    {'name': 'test', 'foo': 'bar', 'baz': 'fleem'}

MozReview-Commit-ID: FAMP5TUIo9q

--HG--
extra : rebase_source : 624c53cfe0565374c1224dd86a3fffc8831279d3
2017-07-19 14:48:01 -04:00
..
__init__.py
cli.py
expression.py
filters.py
ini.py
manifestparser.py