Berker Peksag added the comment:
data_as_list = read_data.splitlines(True)
is not actually the equivalent of
data_as_list = [l + sep for l in read_data.split(sep)]
It will change the behavior of the _iterate_read_data helper. See the comment
at
R. David Murray added the comment:
splitlines(keepends=True) is not ever equivalent to splitting by just '\n'. I
don't know the details here, but switching to that would certainly be a
behavior change. (Especially if the code path also applies to non-binary
data!):
Berker Peksag added the comment:
Thanks for the patch, Aaron(also thanks to Demian for reviews). I've fixed the
merge conflict and added more tests.
--
resolution: - fixed
stage: commit review - resolved
status: open - closed
___
Python tracker
Roundup Robot added the comment:
New changeset 3d7adf5b3fb3 by Berker Peksag in branch '3.4':
Issue #23004: mock_open() now reads binary data correctly when the type of
read_data is bytes.
https://hg.python.org/cpython/rev/3d7adf5b3fb3
New changeset 526a186de32d by Berker Peksag in branch
Robert Collins added the comment:
Post merge review:
looks like
data_as_list = read_data.splitlines(True)
would be a little cleaner.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
Changes by Berker Peksag berker.pek...@gmail.com:
--
assignee: - berker.peksag
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
___
___
Changes by Robert Collins robe...@robertcollins.net:
--
nosy: +rbcollins
versions: +Python 3.6
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
___
Berker Peksag added the comment:
LGTM.
--
components: +Library (Lib)
stage: patch review - commit review
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
___
Changes by Demian Brecht demianbre...@gmail.com:
--
nosy: -demian.brecht
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
___
___
Demian Brecht added the comment:
A few more comments were left in Rietveld for you, likely hidden by spam
filters.
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
___
Aaron Hill added the comment:
I've fixed the formatting issues.
--
Added file:
http://bugs.python.org/file37510/mock-open-allow-binary-data-fix-formatting.patch
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
Aaron Hill added the comment:
I've fixed the issues you pointed out.
Is there a better way than uploading a new patch file to make changes?
--
Added file:
http://bugs.python.org/file37458/mock-open-allow-binary-without-coerce-fixup.patch
___
Python
Demian Brecht added the comment:
Thanks for the updated patch, looks good to me. If you haven't already read it,
the patch workflow is here: https://docs.python.org/devguide/patch.html and is
the only workflow currently available.
--
___
Python
Changes by Berker Peksag berker.pek...@gmail.com:
--
stage: needs patch - patch review
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
___
___
Aaron Hill added the comment:
Thanks, I've fixed that. Not sure why I thought decoding and re-encoding would
work with any binary data.
I've also updated one of the tests to use non-utf8-decodeable binary data, to
prevent a future regression.
--
Added file:
Demian Brecht added the comment:
Thanks again for the update Aaron, I've left a couple small comments in
Rietveld. Other than those, the patch looks good to me. Thanks for the
contribution!
--
___
Python tracker rep...@bugs.python.org
Aaron Hill added the comment:
I've created a new patch, which addresses the problem. Your example now
currently returns [b'foo\n', b'bar\n']
--
Added file:
http://bugs.python.org/file37440/mock-open-allow-binary-data-updated.patch
___
Python
Demian Brecht added the comment:
Thanks for the update, but this doesn't quite work either as you're assuming
utf-8 (which is what .encode() and .decode() default to). For example, when
using latin-1:
m = mock_open(read_data= b'\xc6')
with patch('__main__.open', m, create=True) :
...
Aaron Hill added the comment:
I've created a patch that fixes this, and added an accompanying unit test
(which fails without the change).
--
keywords: +patch
nosy: +Aaron1011
Added file: http://bugs.python.org/file37435/mock-open-allow-binary-data.patch
Demian Brecht added the comment:
Thanks for the patch Aaron. Unfortunately this doesn't quite fix the issue.
There are two problems with the patch:
If a bytes object is passed into mock_open, I'd expect a bytes object in the
output. In your patch, not only is this not the case (the output is
Demian Brecht added the comment:
There are two problems with the patch
That was intended to be removed after I changed the wording :P
--
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
New submission from Jesús Cea Avión:
mock_open(read_data=b'...') gives an error:
Traceback (most recent call last):
File z.py, line 6, in module
print(f.read())
File /usr/local/lib/python3.4/unittest/mock.py, line 896, in __call__
return _mock_self._mock_call(*args, **kwargs)
File
Changes by Jesús Cea Avión j...@jcea.es:
--
dependencies: +Enhancement: give mock_open readline() and readlines() methods
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
___
Changes by Berker Peksag berker.pek...@gmail.com:
--
nosy: +berker.peksag
stage: - needs patch
type: - behavior
versions: +Python 3.4
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue23004
24 matches
Mail list logo