def clean(self, value): """ Replace all tags with their existing version, i.e. fix cases. Unknown tags won't be changed. """ value = super(CaseInsensitiveTagField, self).clean(value) return replace_with_original_tags(value)
def test_replace_with_original_tags(self): CHECK = lambda x, y, z = None: \ self.assertEqual( sorted(replace_with_original_tags(x)), sorted(y), z) CHECK("imo,memo", ["IMO", "MEMO"], "should fix cases") CHECK("wEiRD", ["wEiRD"], "should keep cases for unknown tags") CHECK("geo,imo,2007,NEWTAG", ["geo", "IMO", "2007", "NEWTAG"]) CHECK(["Imo", "asdf"], ["IMO", "asdf"], "should work with lists")