Skip to content

Commit

Permalink
Fix Python 2.7 compatibility.
Browse files Browse the repository at this point in the history
  • Loading branch information
thet committed Mar 15, 2024
1 parent 1dd6ca4 commit a38d765
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 25 deletions.
14 changes: 7 additions & 7 deletions plone/namedfile/field.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ def __call__(self):
for accept in self.field.accept:
if accept[0] == ".":
# This is a file extension. Get a media type from it.
accept = mimetypes.guess_type(f"dummy{accept}", strict=False)[0]
accept = mimetypes.guess_type("dummy" + accept, strict=False)[0]
if accept is None:
# This extension is unknown. Skip it.
continue
Expand Down Expand Up @@ -98,10 +98,10 @@ def __init__(self, **kw):
self.accept = kw.pop("accept")
if "schema" in kw:
self.schema = kw.pop("schema")
super().__init__(schema=self.schema, **kw)
super(NamedField, self).__init__(schema=self.schema, **kw)

def validate(self, value, interface):
super().validate(value)
super(NamedField, self).validate(value)
for name, validator in getAdapters((self, value), interface):
validator()

Expand All @@ -115,7 +115,7 @@ class NamedFile(NamedField):
accept = ()

def validate(self, value):
super().validate(value, IPluggableFileFieldValidation)
super(NamedFile, self).validate(value, IPluggableFileFieldValidation)


@implementer(INamedImageField)
Expand All @@ -127,7 +127,7 @@ class NamedImage(NamedField):
accept = ("image/*",)

def validate(self, value):
super().validate(value, IPluggableImageFieldValidation)
super(NamedImage, self).validate(value, IPluggableImageFieldValidation)


@implementer(INamedBlobFileField)
Expand All @@ -139,7 +139,7 @@ class NamedBlobFile(NamedField):
accept = ()

def validate(self, value):
super().validate(value, IPluggableFileFieldValidation)
super(NamedBlobFile, self).validate(value, IPluggableFileFieldValidation)


@implementer(INamedBlobImageField)
Expand All @@ -151,4 +151,4 @@ class NamedBlobImage(NamedField):
accept = ("image/*",)

def validate(self, value):
super().validate(value, IPluggableImageFieldValidation)
super(NamedBlobImage, self).validate(value, IPluggableImageFieldValidation)
1 change: 1 addition & 0 deletions plone/namedfile/tests/test_doctests.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def check_output(self, want, got, optionflags):
"WrongType", "zope.schema._bootstrapinterfaces.WrongType", got)
got = got.replace(
"filename*=\"utf-8''test.txt\"", "filename*=utf-8''test.txt")
got = re.sub("InvalidFile", "plone.namedfile.field.InvalidFile", got)

if six.PY3:
got = re.sub("b'(.*?)'", "'\\1'", got)
Expand Down
12 changes: 6 additions & 6 deletions plone/namedfile/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def test_get_contenttype(self):
get_contenttype(
NamedImage(
getFile("image.gif"),
filename="image.gif",
filename=u"image.gif",
)
),
"image/gif",
Expand All @@ -30,7 +30,7 @@ def test_get_contenttype(self):
get_contenttype(
NamedImage(
getFile("image.tif"),
filename="image.tif",
filename=u"image.tif",
)
),
"image/tiff",
Expand All @@ -39,26 +39,26 @@ def test_get_contenttype(self):
get_contenttype(
NamedImage(
getFile("notimage.doc"),
filename="notimage.doc",
filename=u"notimage.doc",
)
),
"application/msword",
)

# Filename only detection of a non-IANA registered type.
self.assertEqual(
get_contenttype(filename="image.webp"),
get_contenttype(filename=u"image.webp"),
"image/webp",
)

# Filename only detection of a non-IANA registered type.
self.assertEqual(
get_contenttype(filename="song.midi"),
get_contenttype(filename=u"song.midi"),
"audio/midi",
)

# Detection of a surely not registered type.
self.assertEqual(
get_contenttype(filename="nothing.plonenamedfile"),
get_contenttype(filename=u"nothing.plonenamedfile"),
"application/octet-stream",
)
24 changes: 12 additions & 12 deletions plone/namedfile/tests/test_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,15 @@ def test_validation_NamedImage_default(self):
self.assertRaises(field.InvalidImageFile, image_field.validate, named_image)

# field has an png image file, passes
named_image = file.NamedImage(getFile("image.png"), filename="image.png")
named_image = file.NamedImage(getFile("image.png"), filename=u"image.png")
image_field.validate(named_image)

# field has an gif image file, passes
named_image = file.NamedImage(getFile("image.gif"), filename="image.gif")
named_image = file.NamedImage(getFile("image.gif"), filename=u"image.gif")
image_field.validate(named_image)

# field has a non-image file, fails
named_image = file.NamedImage(getFile("notimage.doc"), filename="notimage.doc")
named_image = file.NamedImage(getFile("notimage.doc"), filename=u"notimage.doc")
self.assertRaises(field.InvalidImageFile, image_field.validate, named_image)

def test_validation_NamedImage_custom(self):
Expand All @@ -58,20 +58,20 @@ def test_validation_NamedImage_custom(self):
self.assertRaises(field.InvalidImageFile, image_field.validate, named_image)

# field has a png image file, passes
named_image = file.NamedImage(getFile("image.png"), filename="image.png")
named_image = file.NamedImage(getFile("image.png"), filename=u"image.png")
image_field.validate(named_image)

# field has a jpg image file, passes also
named_image = file.NamedImage(getFile("image.jpg"), filename="image.jpg")
named_image = file.NamedImage(getFile("image.jpg"), filename=u"image.jpg")
image_field.validate(named_image)

# field has a gif image file, fails because it's not in the accepted
# media types
named_image = file.NamedImage(getFile("image.gif"), filename="image.gif")
named_image = file.NamedImage(getFile("image.gif"), filename=u"image.gif")
self.assertRaises(field.InvalidImageFile, image_field.validate, named_image)

# field has a non-image file, fails
named_image = file.NamedImage(getFile("notimage.doc"), filename="notimage.doc")
named_image = file.NamedImage(getFile("notimage.doc"), filename=u"notimage.doc")
self.assertRaises(field.InvalidImageFile, image_field.validate, named_image)

def test_validation_NamedFile_default(self):
Expand All @@ -84,11 +84,11 @@ def test_validation_NamedFile_default(self):
file_field.validate(None)

# field has n pdf file file, passes
named_file = file.NamedFile(getFile("file.pdf"), filename="file.pdf")
named_file = file.NamedFile(getFile("file.pdf"), filename=u"file.pdf")
file_field.validate(named_file)

# field has a gif file, passes
named_file = file.NamedFile(getFile("image.gif"), filename="image.gif")
named_file = file.NamedFile(getFile("image.gif"), filename=u"image.gif")
file_field.validate(named_file)

def test_validation_NamedFile_custom(self):
Expand All @@ -102,14 +102,14 @@ def test_validation_NamedFile_custom(self):
file_field.validate(None)

# field has a pdf file file, passes
named_file = file.NamedFile(getFile("file.pdf"), filename="file.pdf")
named_file = file.NamedFile(getFile("file.pdf"), filename=u"file.pdf")
file_field.validate(named_file)

# field has a jpg file file, passes also
named_file = file.NamedFile(getFile("image.jpg"), filename="image.jpg")
named_file = file.NamedFile(getFile("image.jpg"), filename=u"image.jpg")
file_field.validate(named_file)

# field has a gif file, fails because it's not in the accepted media
# types
named_file = file.NamedFile(getFile("image.gif"), filename="image.gif")
named_file = file.NamedFile(getFile("image.gif"), filename=u"image.gif")
self.assertRaises(field.InvalidFile, file_field.validate, named_file)

0 comments on commit a38d765

Please sign in to comment.