-
-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Hello,
Products.MimetypesRegistry/Products/MimetypesRegistry/MimeTypesRegistry.py
Lines 322 to 325 in fe06e9f
| failed = "text/x-unknown-content-type" | |
| filename = filename or "" | |
| data = data or "" | |
| data = data.encode() |
Here, the code assume data is str but it can be bytes.
I'd like to propose the following change.
diff --git a/Products/MimetypesRegistry/MimeTypesRegistry.py b/Products/MimetypesRegistry/MimeTypesRegistry.py
index 1f5c4b5..438f439 100644
--- a/Products/MimetypesRegistry/MimeTypesRegistry.py
+++ b/Products/MimetypesRegistry/MimeTypesRegistry.py
@@ -322,7 +322,8 @@ class MimeTypesRegistry(UniqueObject, ActionProviderBase, Folder):
failed = "text/x-unknown-content-type"
filename = filename or ""
data = data or ""
- data = data.encode()
+ if isinstance(data, str):
+ data = data.encode()
ct, enc = guess_content_type(filename, data, None)
if ct == failed:
ct = "text/plain"
diff --git a/Products/MimetypesRegistry/tests/test_mimetypes.py b/Products/MimetypesRegistry/tests/test_mimetypes.py
index 1f55056..d0e7a40 100644
--- a/Products/MimetypesRegistry/tests/test_mimetypes.py
+++ b/Products/MimetypesRegistry/tests/test_mimetypes.py
@@ -73,6 +73,10 @@ class TestMimeTypesclass(unittest.TestCase):
mt = reg.classify("baz", filename="xxx")
self.assertTrue(isinstance(mt, application_octet_stream), str(mt))
+ # test binary data
+ mt = reg.classify(b"\x01")
+ self.assertTrue(isinstance(mt, application_octet_stream), str(mt))
+
def testExtension(self):
reg = self.registry
data = "<foo>bar</foo>"perrinjerome
Metadata
Metadata
Assignees
Labels
No labels