| | 97 | def test_file_output(unicode_filename, verbose=False): |
| | 98 | data = open(unicode_filename, 'rb').read().decode('utf-8') |
| | 99 | handle, filename = tempfile.mkstemp() |
| | 100 | os.close(handle) |
| | 101 | try: |
| | 102 | stream = io.StringIO() |
| | 103 | yaml.dump(data, stream, allow_unicode=True) |
| | 104 | data1 = stream.getvalue() |
| | 105 | stream = io.BytesIO() |
| | 106 | yaml.dump(data, stream, encoding='utf-16-le', allow_unicode=True) |
| | 107 | data2 = stream.getvalue().decode('utf-16-le')[1:] |
| | 108 | stream = open(filename, 'w', encoding='utf-16-le') |
| | 109 | yaml.dump(data, stream, allow_unicode=True) |
| | 110 | stream.close() |
| | 111 | data3 = open(filename, 'r', encoding='utf-16-le').read() |
| | 112 | stream = open(filename, 'wb') |
| | 113 | yaml.dump(data, stream, encoding='utf-8', allow_unicode=True) |
| | 114 | stream.close() |
| | 115 | data4 = open(filename, 'r', encoding='utf-8').read() |
| | 116 | assert data1 == data2, (data1, data2) |
| | 117 | assert data1 == data3, (data1, data3) |
| | 118 | assert data1 == data4, (data1, data4) |
| | 119 | finally: |
| | 120 | if os.path.exists(filename): |
| | 121 | os.unlink(filename) |
| | 122 | |
| | 123 | test_file_output.unittest = ['.unicode'] |
| | 124 | |