
    jz	                     6    d Z ddlZddlmc mZ  G d d      Zy)u]  
Smoke tests for base.html — AC 2, 3, 5, 6 (Story 2.1).

Tests that:
- GET / returns 200 with full HTML (not plain text)
- All 8 nav sections are linked in the response
- active_page='dashboard' marks the dashboard link with aria-current="page"
- 404 renders an HTML template (not plain "Not Found" text)
- All 4 flash categories render correctly
    Nc                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestBaseTemplatec                 D   |j                  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	}|j                  }||v }	|	st        j                  d
|	fd||f      t        j                  |      dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}	}y )N/   ==z3%(py2)s
{%(py2)s = %(py0)s.status_code
} == %(py5)sresppy0py2py5assert %(py7)spy7   <htmlinz,%(py1)s in %(py5)s
{%(py5)s = %(py3)s.data
}py1py3r   )getstatus_code
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationdata)
selfclientr   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert0@py_assert2s
             D/var/www/html/financials/tests/test_blueprints/test_base_template.py test_index_returns_200_with_htmlz1TestBaseTemplate.test_index_returns_200_with_html   s    zz#&3&3&&&&3&&&&&&t&&&t&&&&&&3&&&&&&&$499$x9$$$$x9$$$x$$$$$$4$$$4$$$9$$$$$$$    c                 D	   |j                  d      }|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	}||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
}||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}||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}||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}||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}||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}}y )Nr   s   /transactions/r   )z%(py1)s in %(py3)sr#   )r   r   zassert %(py5)sr   s	   /budgets/s   /bills/s	   /paydown/s   /import/s   /analytics/s
   /settings/
r   r#   r   r   r    r   r   r   r!   r"   )r$   r%   r   r#   r+   r,   @py_format4r)   s           r-   #test_nav_contains_all_section_linksz4TestBaseTemplate.test_nav_contains_all_section_links   s   zz#yy ( D(((( D((( ((((((D(((D(((((((#|t####|t###|######t###t#######!zT!!!!zT!!!z!!!!!!T!!!T!!!!!!!#|t####|t###|######t###t#######"{d""""{d"""{""""""d"""d"""""""%~%%%%~%%%~%%%%%%%%%%%%%%%%$}$$$$}$$$}$$$$$$$$$$$$$$$$r/   c                    |j                  d      }d}|j                  }||v }|st        j                  d|fd||f      t        j                  |      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}}y )	Nr   s   aria-current="page"r   r   r   r   r   r   r1   )r$   r%   r   r+   r'   r,   r)   r*   s           r-   'test_dashboard_active_page_aria_currentz8TestBaseTemplate.test_dashboard_active_page_aria_current   s    zz#%22%2222%222%2222222222222222222r/   c                 R   |j                  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	}|j                  }||v }	|	st        j                  d
|	fd||f      t        j                  |      dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}	}|j                  }|j                  } |       }
d}|
|k7  }|st        j                  d|fd|
|f      dt	        j
                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      t        j                  |
      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}x}
x}}y )Nz"/this-path-does-not-exist-anywherei  r   r
   r   r   r   r   r   r   r   r   s	   Not Found)!=)z^%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.data
}.strip
}()
} != %(py9)s)r   r   py4py6py9zassert %(py11)spy11)r   r   r   r   r   r   r   r    r!   r"   r#   strip)r$   r%   r   r&   r'   r(   r)   r*   r+   r,   @py_assert5@py_assert8@py_assert7@py_format10@py_format12s                  r-   test_404_returns_html_templatez/TestBaseTemplate.test_404_returns_html_template"   s   zz>?&3&3&&&&3&&&&&&t&&&t&&&&&&3&&&&&&&$499$x9$$$$x9$$$x$$$$$$4$$$4$$$9$$$$$$$yy0y0 0L0 L0000 L000000t000t000y000000 000L00000000r/   c                    |j                         5 }dg|d<   d d d        |j                  d      }d}|j                  }||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}}d}|j                  }||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}}y # 1 sw Y   xY w)N)successz
It worked!_flashesr   s
   It worked!r   r   r   r   r   r   s   flash-successsession_transactionr   r#   r   r   r    r   r   r   r!   r"   	r$   r%   sessr   r+   r'   r,   r)   r*   s	            r-   test_flash_success_rendersz+TestBaseTemplate.test_flash_success_renders)   s   '') 	;T 9:D	;zz#)		)}	))))}	)))}))))))))))))	))))))),499,9,,,,9,,,,,,,,,4,,,4,,,9,,,,,,,		; 	;   G  G
c                    |j                         5 }dg|d<   d d d        |j                  d      }d}|j                  }||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}}d}|j                  }||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}}y # 1 sw Y   xY w)N)errorzSomething failedrE   r   s   Something failedr   r   r   r   r   r   s   flash-errorrF   rH   s	            r-   test_flash_error_rendersz)TestBaseTemplate.test_flash_error_renders0   s   '') 	?T =>D	?zz#"/dii/"i////"i///"//////d///d///i///////**~****~***~*******************		? 	?rK   c                    |j                         5 }dg|d<   d d d        |j                  d      }d}|j                  }||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}}d}|j                  }||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}}y # 1 sw Y   xY w)N)warningz	Watch outrE   r   s	   Watch outr   r   r   r   r   r   s   flash-warningrF   rH   s	            r-   test_flash_warning_rendersz+TestBaseTemplate.test_flash_warning_renders7   s   '') 	:T 89D	:zz#(tyy(|y((((|y(((|((((((t(((t(((y(((((((,499,9,,,,9,,,,,,,,,4,,,4,,,9,,,,,,,		: 	:rK   c                 
   |j                         5 }dg|d<   d d d        |j                  d      }d}|j                  }||v }|st        j                  d|fd||f      t        j
                  |      dt        j                         v st        j                  |      rt        j
                  |      ndt        j
                  |      dz  }d	d
|iz  }t        t        j                  |            d x}x}}y # 1 sw Y   xY w)N)infozFYI messagerE   r   s   FYI messager   r   r   r   r   r   rF   rH   s	            r-   test_flash_info_rendersz(TestBaseTemplate.test_flash_info_renders>   s    '') 	9T 78D	9zz#**~****~***~*******************	9 	9s   C99DN)__name__
__module____qualname__r.   r3   r5   rB   rJ   rN   rQ   rT    r/   r-   r   r      s*    %
	%31-+-+r/   r   )__doc__builtinsr   _pytest.assertion.rewrite	assertionrewriter   r   rX   r/   r-   <module>r^      s   	   5+ 5+r/   