def METHOD_NAME(self):
    data = self.cleaned_data["file"]
    try:
        zipfile = ZipFile(data)
        interesting_files = {
            x
            for x in zipfile.namelist()
            if x.lower()[-4:] in (".shp", ".shx", ".dbf")
        }
        extensions = sorted([x.lower()[-4:] for x in interesting_files])
        if extensions != [".dbf", ".shp", ".shx"]:
            raise BadZipFile()
    except BadZipFile:
        raise forms.ValidationError(
            "This is not a zip file, or it doesn't contain exactly one .shp, .shx "
            "and .dbf file."
        )
    return data