mirror of
https://github.com/lutris/lutris
synced 2024-09-04 23:13:35 +00:00
Write ConfigParser content as byte (Fixes #369)
This commit is contained in:
parent
f21e4dcb90
commit
19846caebd
|
@ -6,7 +6,7 @@ class EvilConfigParser(RawConfigParser):
|
|||
"""ConfigParser with support for evil INIs using duplicate keys."""
|
||||
def write(self, fp):
|
||||
for section in self._sections:
|
||||
fp.write("[%s]\n" % section)
|
||||
fp.write("[{}]\n".format(section).encode('utf-8'))
|
||||
for (key, value) in list(self._sections[section].items()):
|
||||
if key == "__name__":
|
||||
continue
|
||||
|
@ -14,8 +14,8 @@ class EvilConfigParser(RawConfigParser):
|
|||
# Duplicated keys writing support inside
|
||||
key = "=".join((key,
|
||||
str(value).replace('\n', '\n%s=' % key)))
|
||||
fp.write("%s\n" % (key))
|
||||
fp.write("\n")
|
||||
fp.write("{}\n".format(key).encode('utf-8'))
|
||||
fp.write("\n".encode('utf-8'))
|
||||
|
||||
|
||||
class MultiOrderedDict(OrderedDict):
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import os
|
||||
from collections import OrderedDict
|
||||
from unittest import TestCase
|
||||
from lutris.util import system
|
||||
from lutris.util import steam
|
||||
from lutris.util import strings
|
||||
from lutris.util import fileio
|
||||
|
||||
|
||||
class TestFileUtils(TestCase):
|
||||
|
@ -110,3 +112,19 @@ class TestVersionSort(TestCase):
|
|||
versions = strings.version_sort(versions, reverse=True)
|
||||
self.assertEqual(versions[0], '1.9')
|
||||
self.assertEqual(versions[3], '1.6')
|
||||
|
||||
|
||||
class TestEvilConfigParser(TestCase):
|
||||
def setUp(self):
|
||||
self.config_path = os.path.join(os.path.dirname(__file__), 'test.ini')
|
||||
|
||||
def tearDown(self):
|
||||
if os.path.exists(self.config_path):
|
||||
os.remove(self.config_path)
|
||||
|
||||
def test_config_parse_can_write_to_disk(self):
|
||||
parser = fileio.EvilConfigParser(dict_type=fileio.MultiOrderedDict)
|
||||
parser.add_section('Test')
|
||||
parser.set('Test', 'key', 'value')
|
||||
with open(self.config_path, 'wb') as config:
|
||||
parser.write(config)
|
||||
|
|
Loading…
Reference in a new issue