Ignore:
Timestamp:
08/31/09 05:13:59 (5 years ago)
Author:
xi
Message:

Merged encoding fixes from the trunk.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/tags/3.09/tests/lib/test_input_output.py

    r335 r368  
    11 
    22import yaml 
    3 import codecs, StringIO 
     3import codecs, StringIO, tempfile, os, os.path 
    44 
    55def _unicode_open(file, encoding, errors='strict'): 
     
    9696test_unicode_output.unittest = ['.unicode'] 
    9797 
     98def test_file_output(unicode_filename, verbose=False): 
     99    data = open(unicode_filename, 'rb').read().decode('utf-8') 
     100    handle, filename = tempfile.mkstemp() 
     101    os.close(handle) 
     102    try: 
     103        stream = StringIO.StringIO() 
     104        yaml.dump(data, stream, allow_unicode=True) 
     105        data1 = stream.getvalue() 
     106        stream = open(filename, 'wb') 
     107        yaml.dump(data, stream, allow_unicode=True) 
     108        stream.close() 
     109        data2 = open(filename, 'rb').read() 
     110        stream = open(filename, 'wb') 
     111        yaml.dump(data, stream, encoding='utf-16-le', allow_unicode=True) 
     112        stream.close() 
     113        data3 = open(filename, 'rb').read().decode('utf-16-le')[1:].encode('utf-8') 
     114        stream = _unicode_open(open(filename, 'wb'), 'utf-8') 
     115        yaml.dump(data, stream, allow_unicode=True) 
     116        stream.close() 
     117        data4 = open(filename, 'rb').read() 
     118        assert data1 == data2, (data1, data2) 
     119        assert data1 == data3, (data1, data3) 
     120        assert data1 == data4, (data1, data4) 
     121    finally: 
     122        if os.path.exists(filename): 
     123            os.unlink(filename) 
     124 
     125test_file_output.unittest = ['.unicode'] 
     126 
    98127def test_unicode_transfer(unicode_filename, verbose=False): 
    99128    data = open(unicode_filename, 'rb').read().decode('utf-8') 
Note: See TracChangeset for help on using the changeset viewer.