Opened 13 months ago

Last modified 13 months ago

#34920 closed Bug

Reordered file extensions for improved validation — at Version 1

Reported by: ksg Owned by: nobody
Component: Core (Other) Version: dev
Severity: Normal Keywords:
Cc: Triage Stage: Ready for checkin
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by ksg)

django.core.validators.FileExtensionValidator had an 'eq' method to compare the validator class. However, comparing arrays is not accurate when the order of elements in the arrays is different.

def __eq__(self, other):
    return (
        isinstance(other, self.__class__)
        and sorted(self.allowed_extensions) == sorted(other.allowed_extensions)
        and self.message == other.message
        and self.code == other.code
    )

This test case failed:

self.assertEqual(
    FileExtensionValidator(["jpg", "png", "txt"]),
    FileExtensionValidator(["txt", "jpg", "png"]),
)

So I suggest comparing two extension arrays after sorting them.

Change History (1)

comment:1 by ksg, 13 months ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top