L�X� � @ s� d d l Z d d l m Z m Z m Z m Z d d l m Z i d d d d d � Z d d � Z d d � Z d d d d d d d d � Z d d d d d � Z f d d � Z d d � Z d d � Z d d � Z d d d d � Z d S)� N)�errors� Validator�SchemaError� DocumentError)� sample_schemac C s} | d k r t t � } | d k rM t j | � � } | | | � Wd QRXn, t j | d | �� } | | | � Wd QRXd S)z{ Tests whether a specific exception is raised. Optionally also tests whether the exception message is as expected. N�message)r r �pytestZraises)� exception�document�schema� validator�msgZexcinfo� r �/__init__.py�assert_exception s r c G s t t | � d S)zS Tests whether a validation raises an exception due to a malformed schema. N)r r )�argsr r r �assert_schema_error s r c G s t t | � d S)zU Tests whether a validation raises an exception due to a malformed document. N)r r )r r r r �assert_document_error s r Fc C sf | d k r t t � } | | | | � } t | t � s? t � | sL t � | j } | d k oj | d k st t � | d k o� | d k s� t � | d k o� | d k s� t � | d k r+t | � d k s� t � t | | � | d k rbt | d j � t | � k st � t | d j | � n7 | d k rbt | � t | � k sUt � t | | � | S)z# Tests whether a validation fails. N� r ) r r � isinstance�bool�AssertionError�_errors�len�assert_has_error�child_errors�assert_has_errors) r r r �update�errorr r �resultZ actual_errorsr r r �assert_fail# s&