def codec(self): try: mimetype = self.mimetype except AttributeError: mimetype = self.value for encoding in (self.value, mimetype): if self.CODECS is not None: encoding = self.CODECS.get(encoding) if not isinstance(encoding, (bytes, Unicode)): return encoding try: return lookup(encoding.lower()) except KeyError: pass
def test_codec_registering(): assert lookup(FooBar.mimetype, raise_errors=False) is None with pytest.raises(KeyError): lookup(FooBar.mimetype, raise_errors=True) register(FooBar.mimetype, FooBar) assert lookup(FooBar.mimetype) is FooBar