mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
bpo-44582: Accelerate mimetypes.init on Windows with a native accelerator (GH-27059)
(cherry picked from commit bbf2fb6c7a
)
Co-authored-by: Steve Dower <steve.dower@python.org>
This commit is contained in:
parent
a219d6bc8f
commit
08697ac5d1
5 changed files with 189 additions and 7 deletions
|
@ -9,6 +9,11 @@ from test import support
|
|||
from test.support import os_helper
|
||||
from platform import win32_edition
|
||||
|
||||
try:
|
||||
import _winapi
|
||||
except ImportError:
|
||||
_winapi = None
|
||||
|
||||
|
||||
def setUpModule():
|
||||
global knownfiles
|
||||
|
@ -235,6 +240,21 @@ class Win32MimeTypesTestCase(unittest.TestCase):
|
|||
eq(self.db.guess_type("image.jpg"), ("image/jpeg", None))
|
||||
eq(self.db.guess_type("image.png"), ("image/png", None))
|
||||
|
||||
@unittest.skipIf(not hasattr(_winapi, "_mimetypes_read_windows_registry"),
|
||||
"read_windows_registry accelerator unavailable")
|
||||
def test_registry_accelerator(self):
|
||||
from_accel = {}
|
||||
from_reg = {}
|
||||
_winapi._mimetypes_read_windows_registry(
|
||||
lambda v, k: from_accel.setdefault(k, set()).add(v)
|
||||
)
|
||||
mimetypes.MimeTypes._read_windows_registry(
|
||||
lambda v, k: from_reg.setdefault(k, set()).add(v)
|
||||
)
|
||||
self.assertEqual(list(from_reg), list(from_accel))
|
||||
for k in from_reg:
|
||||
self.assertEqual(from_reg[k], from_accel[k])
|
||||
|
||||
|
||||
class MiscTestCase(unittest.TestCase):
|
||||
def test__all__(self):
|
||||
|
@ -288,6 +308,5 @@ class MimetypesCliTestCase(unittest.TestCase):
|
|||
type_info = self.mimetypes_cmd("foo.pic")
|
||||
eq(type_info, "I don't know anything about type foo.pic")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue