diff options
author | Justus Winter <[email protected]> | 2016-05-25 10:47:28 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-05-27 10:18:29 +0000 |
commit | bf188e280b8b4fc775f33c47e2e1e275ed044004 (patch) | |
tree | 1054c20ee41658ffaa89d84d7baf1e49e00c9d89 /lang/python/tests/t-data.py | |
parent | src: Fix trace string. (diff) | |
download | gpgme-bf188e280b8b4fc775f33c47e2e1e275ed044004.tar.gz gpgme-bf188e280b8b4fc775f33c47e2e1e275ed044004.zip |
python: Fix reading data from existing files.
* lang/python/pyme/core.py (Data.__init__): Add 'copy' kwargument, and
pass it to functions supporting it. PEP8 fix.
(Data.new_from_fd): PEP8 fix.
(Data.new_from_file): Give a more helpful error message if copy is
False. PEP8 fix.
(Data.new_from_fd): Hand the file descriptor to
'gpgme_data_new_from_fd', not a stream. Fix docstring.
* lang/python/tests/t-data.py: Add tests for this.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'lang/python/tests/t-data.py')
-rwxr-xr-x | lang/python/tests/t-data.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/lang/python/tests/t-data.py b/lang/python/tests/t-data.py index af2eb986..6cf10fab 100755 --- a/lang/python/tests/t-data.py +++ b/lang/python/tests/t-data.py @@ -18,7 +18,7 @@ # License along with this program; if not, see <http://www.gnu.org/licenses/>. import os - +import tempfile from pyme import core data = core.Data('Hello world!') @@ -32,6 +32,9 @@ assert data.read() == b'' data = core.Data(b'Hello world!') assert data.read() == b'Hello world!' +data = core.Data(b'Hello world!', copy=False) +assert data.read() == b'Hello world!' + data = core.Data() data.write('Hello world!') data.seek(0, os.SEEK_SET) @@ -47,3 +50,32 @@ data = core.Data() data.write(binjunk) data.seek(0, os.SEEK_SET) assert data.read() == binjunk + +# Test reading from an existing file. +with tempfile.NamedTemporaryFile() as tmp: + tmp.write(binjunk) + tmp.flush() + tmp.seek(0) + + # Open using name. + data = core.Data(file=tmp.name) + assert data.read() == binjunk + + # Open using name, without copying. + if False: + # delayed reads are not yet supported + data = core.Data(file=tmp.name, copy=False) + assert data.read() == binjunk + + # Open using stream. + tmp.seek(0) + data = core.Data(file=tmp) + assert data.read() == binjunk + + # Open using stream, offset, and length. + data = core.Data(file=tmp, offset=0, length=42) + assert data.read() == binjunk[:42] + + # Open using name, offset, and length. + data = core.Data(file=tmp.name, offset=23, length=42) + assert data.read() == binjunk[23:23+42] |