Changeset 1493

Show
Ignore:
Timestamp:
07/09/08 10:48:41 (3 months ago)
Author:
nick
Message:

amf3.Encoder now raises an exception when encountering a func or method type

Location:
pyamf/branches/amf3-encoder-unsupported-311/pyamf
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • pyamf/branches/amf3-encoder-unsupported-311/pyamf/amf3.py

    r1432 r1493  
    12041204        # Unsupported types go first 
    12051205        ((types.BuiltinFunctionType, types.BuiltinMethodType,), 
    1206             "writeUnsupported"), 
     1206            "writeFunc"), 
    12071207        ((bool,), "writeBoolean"), 
    12081208        ((types.NoneType,), "writeNull"), 
     
    12171217    ] 
    12181218 
     1219    def writeFunc(self, obj): 
     1220        """ 
     1221        Functions are unencodeable .. 
     1222        """ 
     1223        raise pyamf.EncodeError("Unable to encode function/methods") 
     1224 
    12191225    def writeElement(self, data, use_references=True): 
    12201226        """ 
     
    12301236 
    12311237        if func is None: 
    1232             # XXX nick: Should we be generating a warning here? 
    1233             self.writeUnsupported(data) 
     1238            raise pyamf.EncodeError("Cannot find encoder func for %r" % (data,)) 
    12341239        else: 
    12351240            try: 
  • pyamf/branches/amf3-encoder-unsupported-311/pyamf/tests/test_amf3.py

    r1432 r1493  
    267267            self._run([(ord, '\x00')]) 
    268268 
    269         self.assertRaises(AttributeError, x) 
     269        self.assertRaises(pyamf.EncodeError, x) 
    270270 
    271271        self._run([(pyamf.Undefined, '\x00')]) 
     
    583583            '\n\x0b\x01\ttext\x06\x07bar\ttail\x01\x07tag\x06\x07foo\x01') 
    584584 
     585    def test_unknown_func(self): 
     586        self.encoder._writeElementFunc = lambda x: None 
     587 
     588        self.assertRaises(pyamf.EncodeError, self.encoder.writeElement, None) 
     589 
    585590class DecoderTestCase(_util.ClassCacheClearingTestCase): 
    586591    """