diff options
author | Berker Peksag <berker.peksag@gmail.com> | 2016-10-01 02:01:54 (GMT) |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2016-10-01 02:01:54 (GMT) |
commit | ef223a19f76101a914ccff8b4690d9e4717e109e (patch) | |
tree | bdad4d3c2616ab612149201f523ed0491198bd22 /Lib | |
parent | 6c63f197dff23f56b15c61dea8bea30d83350c63 (diff) | |
download | cpython-ef223a19f76101a914ccff8b4690d9e4717e109e.zip cpython-ef223a19f76101a914ccff8b4690d9e4717e109e.tar.gz cpython-ef223a19f76101a914ccff8b4690d9e4717e109e.tar.bz2 |
Issue #28228: imghdr now supports pathlib
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/imghdr.py | 4 | ||||
-rw-r--r-- | Lib/test/test_imghdr.py | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/Lib/imghdr.py b/Lib/imghdr.py index b267925..76e8abb 100644 --- a/Lib/imghdr.py +++ b/Lib/imghdr.py @@ -1,5 +1,7 @@ """Recognize image file formats based on their first few bytes.""" +from os import PathLike + __all__ = ["what"] #-------------------------# @@ -10,7 +12,7 @@ def what(file, h=None): f = None try: if h is None: - if isinstance(file, str): + if isinstance(file, (str, PathLike)): f = open(file, 'rb') h = f.read(32) else: diff --git a/Lib/test/test_imghdr.py b/Lib/test/test_imghdr.py index b54daf8..476ba95 100644 --- a/Lib/test/test_imghdr.py +++ b/Lib/test/test_imghdr.py @@ -1,6 +1,7 @@ import imghdr import io import os +import pathlib import unittest import warnings from test.support import findfile, TESTFN, unlink @@ -49,6 +50,12 @@ class TestImghdr(unittest.TestCase): self.assertEqual(imghdr.what(None, data), expected) self.assertEqual(imghdr.what(None, bytearray(data)), expected) + def test_pathlike_filename(self): + for filename, expected in TEST_FILES: + with self.subTest(filename=filename): + filename = findfile(filename, subdir='imghdrdata') + self.assertEqual(imghdr.what(pathlib.Path(filename)), expected) + def test_register_test(self): def test_jumbo(h, file): if h.startswith(b'eggs'): |