mirror of
				https://github.com/msgpack/msgpack-python.git
				synced 2025-10-31 09:30:53 +00:00 
			
		
		
		
	Add StackError and FormatError (#331)
This commit is contained in:
		
							parent
							
								
									8b6ce53cce
								
							
						
					
					
						commit
						44254dd35e
					
				
					 7 changed files with 120 additions and 48 deletions
				
			
		|  | @ -2,7 +2,7 @@ | |||
| # coding: utf-8 | ||||
| 
 | ||||
| from pytest import raises | ||||
| from msgpack import packb, unpackb | ||||
| from msgpack import packb, unpackb, Unpacker, FormatError, StackError, OutOfData | ||||
| 
 | ||||
| import datetime | ||||
| 
 | ||||
|  | @ -19,13 +19,34 @@ def test_raise_on_find_unsupported_value(): | |||
| def test_raise_from_object_hook(): | ||||
|     def hook(obj): | ||||
|         raise DummyException | ||||
| 
 | ||||
|     raises(DummyException, unpackb, packb({}), object_hook=hook) | ||||
|     raises(DummyException, unpackb, packb({'fizz': 'buzz'}), object_hook=hook) | ||||
|     raises(DummyException, unpackb, packb({'fizz': 'buzz'}), object_pairs_hook=hook) | ||||
|     raises(DummyException, unpackb, packb({'fizz': {'buzz': 'spam'}}), object_hook=hook) | ||||
|     raises(DummyException, unpackb, packb({'fizz': {'buzz': 'spam'}}), object_pairs_hook=hook) | ||||
|     raises(DummyException, unpackb, packb({"fizz": "buzz"}), object_hook=hook) | ||||
|     raises(DummyException, unpackb, packb({"fizz": "buzz"}), object_pairs_hook=hook) | ||||
|     raises(DummyException, unpackb, packb({"fizz": {"buzz": "spam"}}), object_hook=hook) | ||||
|     raises( | ||||
|         DummyException, | ||||
|         unpackb, | ||||
|         packb({"fizz": {"buzz": "spam"}}), | ||||
|         object_pairs_hook=hook, | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| def test_invalidvalue(): | ||||
|     incomplete = b"\xd9\x97#DL_"  # raw8 - length=0x97 | ||||
|     with raises(ValueError): | ||||
|         unpackb(b'\xd9\x97#DL_') | ||||
|         unpackb(incomplete) | ||||
| 
 | ||||
|     with raises(OutOfData): | ||||
|         unpacker = Unpacker() | ||||
|         unpacker.feed(incomplete) | ||||
|         unpacker.unpack() | ||||
| 
 | ||||
|     with raises(FormatError): | ||||
|         unpackb(b"\xc1")  # (undefined tag) | ||||
| 
 | ||||
|     with raises(FormatError): | ||||
|         unpackb(b"\x91\xc1")  # fixarray(len=1) [ (undefined tag) ] | ||||
| 
 | ||||
|     with raises(StackError): | ||||
|         unpackb(b"\x91" * 3000)  # nested fixarray(len=1) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 INADA Naoki
						INADA Naoki