
    ~e                     Z    d dl Z d dlmZ d dlmZ d dlmZ  G d de j                        Zy)    N)Constant)Int)Messagec                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
MessageTestc                 ~    t        ddt               i      }| j                  |j                  ddd      ddd       y)z8The L{Message} schema should be very similar to KeyDict.foodata   )typer
   Nr   r   assertEqualcoerceselfschemas     H/usr/lib/python3/dist-packages/landscape/message_schemas/test_message.pytest_coercezMessageTest.test_coerce	   s;    0MM5!45A&	
    c                 \    t        d      }| j                  |j                  d      d       y)zm
        The L{Constant} schema type recognizes bytestrings that decode to
        matching strings.
        registers   registerN)r   r   r   )r   constants     r   test_coerce_bytes_to_strz$MessageTest.test_coerce_bytes_to_str   s'    
 J'5zBr   c                 j    t        di       }| j                  |j                  ddd      ddd       y)z3L{Message} schemas should accept C{timestamp} keys.bargQ?)r   	timestampNr   r   r   r   s     r   test_timestampzMessageTest.test_timestamp   s5    #MM5t<=.	
r   c                 j    t        di       }| j                  |j                  ddd      ddd       y)z-L{Message} schemas should accept C{api} keys.bazs   whateverr   apiNr   r   s     r   test_apizMessageTest.test_api!   s5    #MM5=>;/	
r   c                 j    t        di       }| j                  |j                  ddd      ddd       y)z1L{Message} schemas should accept None for C{api}.r    Nr!   r   r   s     r   test_api_nonezMessageTest.test_api_none)   s5    #MM5674(	
r   c                     t        ddt               idg      }| j                  |j                  ddi      ddi       y)z<The L{Message} schema should allow additional optional keys.r	   r
   )optionalr   Nr   r   s     r   test_optionalzMessageTest.test_optional1   s9    6(C7&%Ir   c                 T    t        di       }| j                  |j                  d       y)z;The C{type} should be introspectable on L{Message} objects.r	   N)r   r   r   r   s     r   	test_typezMessageTest.test_type6   s"    #e,r   c                 h    t        di       }| j                  ddi|j                  ddd             y)zU
        The L{Message} schema discards unknown fields when coercing values.
        r	   r   {   )r   crapNr   r   s     r   test_with_unknown_fieldsz$MessageTest.test_with_unknown_fields;   s6     #UOMM5#67	
r   N)__name__
__module____qualname__r   r   r   r#   r%   r(   r*   r.    r   r   r   r      s,    
C


J
-

r   r   )unittestlandscape.lib.schemar   r   !landscape.message_schemas.messager   TestCaser   r2   r   r   <module>r7      s#     ) $ 5;
(## ;
r   