Parse settings which are dicts
authorKarl O. Pinc <kop@meme.com>
Sat, 17 Nov 2018 05:27:54 +0000 (23:27 -0600)
committerKarl O. Pinc <kop@meme.com>
Sat, 17 Nov 2018 05:27:54 +0000 (23:27 -0600)
src/pgwui_server/__init__.py
tests/test___init__.py

index 52c03a33cdcdfec5fe48afe49d10a50f2c1f46fa..121e6f0528713c2e91b24ad9a66ae25c3a7aa1af 100644 (file)
@@ -29,10 +29,14 @@ def parse_assignments(lines):
     '''Return a list of key/value tuples from the lines of a setting
     '''
     result = []
-    for line in lines.split('\n'):
-        if '=' in line:
-            key, val = line.split('=', 1)
-            result.append((key.rstrip(), val.lstrip()))
+    if isinstance(lines, str):
+        for line in lines.splitlines():
+            if '=' in line:
+                key, val = line.split('=', 1)
+                result.append((key.rstrip(), val.lstrip()))
+    else:
+        for key, val in lines.items():
+            result.append((key, val))
     return result
 
 
index d405761737fa9c71d28415e169df6d956430925e..2cbfbc221d46f50141e116d5340959147b9b47bc 100644 (file)
@@ -52,8 +52,8 @@ class MockConfig():
 
 # parse_assignments()
 
-def test_parse_assignments():
-    '''Returns key/value tuples and ignores lines without an "="'''
+def test_parse_assignments_str():
+    '''Returns key/value string tuples and ignores lines without an "="'''
     lines = ('key1 = value1\n'  # whitespace around = is ignored
              '\n'
              'ignored\n'
@@ -66,6 +66,18 @@ def test_parse_assignments():
                       ('key3', 'value3=withequals')]
 
 
+def test_parse_assignments_dict():
+    '''Returns key value tuples.
+    '''
+    lines = {'key1': 'value1',
+             'key2': 'value2',
+             }
+    result = pgwui_server_init.parse_assignments(lines)
+    assert result == [('key1', 'value1'),
+                      ('key2', 'value2'),
+                      ]
+
+
 # add_routes()
 
 def test_add_routes_empty():