Projet

Général

Profil

0001-forms-fix-export-of-workflow-options-filled-with-non.patch

Frédéric Péters, 10 juillet 2015 15:09

Télécharger (2,07 ko)

Voir les différences:

Subject: [PATCH] forms: fix export of workflow options filled with non-ascii
 data (#7819)

 tests/test_formdef_import.py | 5 ++++-
 wcs/formdef.py               | 4 ++--
 2 files changed, 6 insertions(+), 3 deletions(-)
tests/test_formdef_import.py
1
# -*- coding: utf-8 -*-
2

  
1 3
import sys
2 4
import shutil
3 5
import StringIO
......
139 141
def test_workflow_options():
140 142
    formdef = FormDef()
141 143
    formdef.name = 'workflow options'
142
    formdef.workflow_options = {'foo': 'bar'}
144
    formdef.workflow_options = {'foo': 'bar',
145
            'foo2': 'baré'}
143 146
    fd2 = assert_xml_import_export_works(formdef)
144 147
    assert fd2.workflow_options == formdef.workflow_options
145 148
    fd2 = assert_json_import_export_works(formdef)
wcs/formdef.py
639 639
            element.attrib['varname'] = option
640 640
            option_value = self.workflow_options.get(option)
641 641
            if isinstance(option_value, basestring):
642
                element.text = self.workflow_options.get(option)
642
                element.text = unicode(self.workflow_options.get(option, ''), charset)
643 643
            else:
644 644
                pass # TODO: extend support to other types
645 645

  
......
704 704

  
705 705
        formdef.workflow_options = {}
706 706
        for option in tree.findall('options/option'):
707
            formdef.workflow_options[option.attrib.get('varname')] = option.text
707
            formdef.workflow_options[option.attrib.get('varname')] = option.text.encode(charset)
708 708

  
709 709
        if tree.find('last_modification') is not None:
710 710
            node = tree.find('last_modification')
711
-