diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2017-10-22 11:53:43 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2017-10-22 11:53:43 (GMT) |
commit | 251de30935490a702b0a365f1e9bea696b39c016 (patch) | |
tree | 1ec3430847cadbf4b9fcdbb9dfe2ce3361ebe1e5 | |
parent | 34ef6da8f5fb03b83268bd35b77fb2183c748b70 (diff) | |
download | cpython-251de30935490a702b0a365f1e9bea696b39c016.zip cpython-251de30935490a702b0a365f1e9bea696b39c016.tar.gz cpython-251de30935490a702b0a365f1e9bea696b39c016.tar.bz2 |
bpo-28286: Add tests for the mode argument of GzipFile. (GH-4074) (#4076)
(cherry picked from commit bcbdd2f8db396c3f0ec9186162b39b5a34effa0e)
-rw-r--r-- | Lib/test/test_gzip.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py index b457bd3..295d4d4 100644 --- a/Lib/test/test_gzip.py +++ b/Lib/test/test_gzip.py @@ -431,6 +431,30 @@ class TestGzip(BaseTest): with gzip.GzipFile(fileobj=f, mode="w") as g: pass + def test_fileobj_mode(self): + gzip.GzipFile(self.filename, "wb").close() + with open(self.filename, "r+b") as f: + with gzip.GzipFile(fileobj=f, mode='r') as g: + self.assertEqual(g.mode, gzip.READ) + with gzip.GzipFile(fileobj=f, mode='w') as g: + self.assertEqual(g.mode, gzip.WRITE) + with gzip.GzipFile(fileobj=f, mode='a') as g: + self.assertEqual(g.mode, gzip.WRITE) + with gzip.GzipFile(fileobj=f, mode='x') as g: + self.assertEqual(g.mode, gzip.WRITE) + with self.assertRaises(ValueError): + gzip.GzipFile(fileobj=f, mode='z') + for mode in "rb", "r+b": + with open(self.filename, mode) as f: + with gzip.GzipFile(fileobj=f) as g: + self.assertEqual(g.mode, gzip.READ) + for mode in "wb", "ab", "xb": + if "x" in mode: + support.unlink(self.filename) + with open(self.filename, mode) as f: + with gzip.GzipFile(fileobj=f) as g: + self.assertEqual(g.mode, gzip.WRITE) + def test_bytes_filename(self): str_filename = self.filename try: |