o
    ¶žâc™  ã                   @   s:   d dl Z d dlmZmZ d dlmZ G dd„ de jƒZdS )é    N)ÚConstantÚInt)ÚMessagec                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚMessageTestc                 C   s2   t ddtƒ iƒ}|  | dddœ¡dddœ¡ dS )z8The L{Message} schema should be very similar to KeyDict.ÚfooÚdataé   )Útyper   N©r   r   ÚassertEqualÚcoerce©ÚselfÚschema© r   úH/usr/lib/python3/dist-packages/landscape/message_schemas/test_message.pyÚtest_coerce	   s
   þzMessageTest.test_coercec                 C   s   t dƒ}|  | d¡d¡ dS )zm
        The L{Constant} schema type recognizes bytestrings that decode to
        matching strings.
        Úregisters   registerN)r   r   r   )r   Úconstantr   r   r   Útest_coerce_bytes_to_str   s   z$MessageTest.test_coerce_bytes_to_strc                 C   ó,   t di ƒ}|  | dddœ¡dddœ¡ dS )z3L{Message} schemas should accept C{timestamp} keys.Úbarg…ëQ¸Õ?)r	   Ú	timestampN©r   r   r   r   r   r   r   Útest_timestamp   ó
   
þzMessageTest.test_timestampc                 C   r   )z-L{Message} schemas should accept C{api} keys.Úbazs   whatever©r	   ÚapiNr   r   r   r   r   Útest_api   r   zMessageTest.test_apic                 C   s,   t di ƒ}|  | dddœ¡dddœ¡ dS )z1L{Message} schemas should accept None for C{api}.r   Nr   r   r   r   r   r   Útest_api_None&   r   zMessageTest.test_api_Nonec                 C   s4   t ddtƒ idgd�}|  | ddi¡ddi¡ dS )z<The L{Message} schema should allow additional optional keys.r   r   )Úoptionalr	   Nr
   r   r   r   r   Útest_optional-   s   zMessageTest.test_optionalc                 C   s   t di ƒ}|  |jd¡ dS )z;The C{type} should be introspectable on L{Message} objects.r   N)r   r   r	   r   r   r   r   Ú	test_type2   s   
zMessageTest.test_typec                 C   s*   t di ƒ}|  ddi| dddœ¡¡ dS )zU
        The L{Message} schema discards unknown fields when coercing values.
        r   r	   é{   )r	   ÚcrapNr   r   r   r   r   Útest_with_unknown_fields7   s   

ÿz$MessageTest.test_with_unknown_fieldsN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r    r"   r#   r&   r   r   r   r   r      s    r   )ÚunittestÚlandscape.lib.schemar   r   Ú!landscape.message_schemas.messager   ÚTestCaser   r   r   r   r   Ú<module>   s    