
    IjP                     R    d Z ddlZddlmc mZ ddlZddlZddl	m
Z
  G d d      Zy)u:   Contract tests for api_error helper — Story 2.4 (AC: 5).    N)	api_errorc                   f    e Zd Zd Zd Zd Zej                  j                  dg d      d        Z	y)TestApiErrorc                    |j                         5  t        dd      }|j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd	|iz  }t        t        j                  |            d x}x}}d d d        y # 1 sw Y   y xY w)
Nzsomething went wrong  zapplication/json==)z4%(py2)s
{%(py2)s = %(py0)s.content_type
} == %(py5)sresponse)py0py2py5zassert %(py7)spy7)app_contextr   content_type
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)selfappr
   @py_assert1@py_assert4@py_assert3@py_format6@py_format8s           8/var/www/html/financials/tests/test_utils/test_errors.pytest_content_type_is_jsonz&TestApiError.test_content_type_is_json   s    __ 	? !7=H((>,>>(,>>>>>(,>>>>>>>8>>>8>>>(>>>,>>>>>>>>	? 	? 	?s   CC//C8c                    |j                         5  t        dd      }t        j                  |j                        }d}||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }dd	|iz  }t        t        j                  |            d x}}|d   }d}||k(  }|slt        j                  d
|fd||f      t        j                  |      t        j                  |      dz  }	dd|	iz  }
t        t        j                  |
            d x}x}}d d d        y # 1 sw Y   y xY w)N	not found  errorinz%(py1)s in %(py3)sdatapy1py3assert %(py5)sr   r   z%(py1)s == %(py4)sr+   py4assert %(py6)spy6r   r   jsonloadsr)   r   r   r   r   r   r   r   r   r   r   r
   r)   @py_assert0@py_assert2@py_format4r   r   @py_format5@py_format7s              r    test_body_has_error_keyz$TestApiError.test_body_has_error_key   s    __ 	0 c2H::hmm,D"7d?"""7d"""7""""""d"""d"""""""=/K/=K////=K///=///K///////		0 	0 	0   EE++E4c                    |j                         5  t        dd      }t        j                  |j                        }d}||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }dd	|iz  }t        t        j                  |            d x}}|d   }d}||k(  }|slt        j                  d
|fd||f      t        j                  |      t        j                  |      dz  }	dd|	iz  }
t        t        j                  |
            d x}x}}d d d        y # 1 sw Y   y xY w)Nr#   r$   coder&   r(   r)   r*   r-   r   r   r.   r/   r1   r2   r3   r6   s              r    test_body_has_code_keyz#TestApiError.test_body_has_code_key   s    __ 	' c2H::hmm,D!6T>!!!6T!!!6!!!!!!T!!!T!!!!!!!<&3&<3&&&&<3&&&<&&&3&&&&&&&		' 	' 	'r=   r?   )r   r$   i  c                 H   |j                         5  t        d|      }|j                  }||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dt        j                         v st        j                  |      rt        j                  |      nddz  }dd|iz  }t        t        j                  |            d x}}d d d        y # 1 sw Y   y xY w)	Nr%   r   )z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py4)sr
   r?   )r   r   r0   r1   r2   )r   r   status_coder   r   r   r   r   r   r   r   )r   r   r?   r
   r   r   r:   r;   s           r    &test_http_status_matches_code_argumentz3TestApiError.test_http_status_matches_code_argument   s    __ 	0 $/H''/'4////'4//////8///8///'//////4///4///////	0 	0 	0s   C>DD!N)
__name__
__module____qualname__r!   r<   r@   pytestmarkparametrizerC        r    r   r      s6    ?
0' [[V_50 60rK   r   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   r4   rG   app.utils.errorsr   r   rJ   rK   r    <module>rR      s    @     &0 0rK   