Show More
@@ -267,7 +267,7 b" def atomic_writing(path, text=True, encoding='utf-8', **kwargs):" | |||||
267 | path = os.path.join(os.path.dirname(path), os.readlink(path)) |
|
267 | path = os.path.join(os.path.dirname(path), os.readlink(path)) | |
268 |
|
268 | |||
269 | dirname, basename = os.path.split(path) |
|
269 | dirname, basename = os.path.split(path) | |
270 |
handle, tmp_path = tempfile.mkstemp(prefix=basename, dir=dirname |
|
270 | handle, tmp_path = tempfile.mkstemp(prefix=basename, dir=dirname) | |
271 | if text: |
|
271 | if text: | |
272 | fileobj = io.open(handle, 'w', encoding=encoding, **kwargs) |
|
272 | fileobj = io.open(handle, 'w', encoding=encoding, **kwargs) | |
273 | else: |
|
273 | else: |
@@ -175,4 +175,41 b' def test_atomic_writing():' | |||||
175 | f.write(u'written from symlink') |
|
175 | f.write(u'written from symlink') | |
176 |
|
176 | |||
177 | with stdlib_io.open(f1, 'r') as f: |
|
177 | with stdlib_io.open(f1, 'r') as f: | |
178 | nt.assert_equal(f.read(), u'written from symlink') No newline at end of file |
|
178 | nt.assert_equal(f.read(), u'written from symlink') | |
|
179 | ||||
|
180 | def test_atomic_writing_newlines(): | |||
|
181 | with TemporaryDirectory() as td: | |||
|
182 | path = os.path.join(td, 'testfile') | |||
|
183 | ||||
|
184 | lf = u'a\nb\nc\n' | |||
|
185 | plat = lf.replace(u'\n', os.linesep) | |||
|
186 | crlf = lf.replace(u'\n', u'\r\n') | |||
|
187 | ||||
|
188 | # test default | |||
|
189 | with stdlib_io.open(path, 'w') as f: | |||
|
190 | f.write(lf) | |||
|
191 | with stdlib_io.open(path, 'r', newline='') as f: | |||
|
192 | read = f.read() | |||
|
193 | nt.assert_equal(read, plat) | |||
|
194 | ||||
|
195 | # test newline=LF | |||
|
196 | with stdlib_io.open(path, 'w', newline='\n') as f: | |||
|
197 | f.write(lf) | |||
|
198 | with stdlib_io.open(path, 'r', newline='') as f: | |||
|
199 | read = f.read() | |||
|
200 | nt.assert_equal(read, lf) | |||
|
201 | ||||
|
202 | # test newline=CRLF | |||
|
203 | with atomic_writing(path, newline='\r\n') as f: | |||
|
204 | f.write(lf) | |||
|
205 | with stdlib_io.open(path, 'r', newline='') as f: | |||
|
206 | read = f.read() | |||
|
207 | nt.assert_equal(read, crlf) | |||
|
208 | ||||
|
209 | # test newline=no convert | |||
|
210 | text = u'crlf\r\ncr\rlf\n' | |||
|
211 | with atomic_writing(path, newline='') as f: | |||
|
212 | f.write(text) | |||
|
213 | with stdlib_io.open(path, 'r', newline='') as f: | |||
|
214 | read = f.read() | |||
|
215 | nt.assert_equal(read, text) |
General Comments 0
You need to be logged in to leave comments.
Login now