# HG changeset patch # User Stefano Rivera # Date 1378119925 -7200 # Node ID adf3cd83bf7af1cccde4b38760b11131b62e7adf # Parent fd9c4db5ddfe095c083f185e260cdc515346af1f Support a common stylistic variation diff -r fd9c4db5ddfe -r adf3cd83bf7a nagslang/tests/test_yamlish.py --- a/nagslang/tests/test_yamlish.py Mon Sep 02 11:56:08 2013 +0200 +++ b/nagslang/tests/test_yamlish.py Mon Sep 02 13:05:25 2013 +0200 @@ -9,6 +9,26 @@ from nagslang.yamlish import load, dump +class TestParse(TestCase): + def assertParsesAs(self, yaml, expected): + f = StringIO(yaml.strip()) + self.assertEqual(load(f), expected) + + def test_dict_list_1(self): + self.assertParsesAs(''' +foo: +- bar +- baz + ''', {'foo': ['bar', 'baz']}) + + def test_dict_list_2(self): + self.assertParsesAs(''' +foo: + - bar + - baz + ''', {'foo': ['bar', 'baz']}) + + class TestRoundTrip(TestCase): def roundtrip(self, data): f = StringIO() diff -r fd9c4db5ddfe -r adf3cd83bf7a nagslang/yamlish.py --- a/nagslang/yamlish.py Mon Sep 02 11:56:08 2013 +0200 +++ b/nagslang/yamlish.py Mon Sep 02 13:05:25 2013 +0200 @@ -63,10 +63,13 @@ stack.pop() if len(spaces) > indent(): - # Nested dict - assert dm assert parent_key - stack.append((len(spaces), {})) + if dm: + # Nested dict + stack.append((len(spaces), {})) + elif lm: + # Over-indented list in a dict + stack.append((len(spaces), [])) stack[-2][1][parent_key] = obj() parent_key = None