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    