
    nj7                    H   U d dl m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 d dlmZ d dlmZmZmZmZmZ  ee      j+                         j,                  d   dz  Zded	<    G d
 de      Z G d de      Z G d de      Ze G d de             ZddZddZddZddZ y)    )annotationsN)
HTMLParser)Path)Final	TypedDictcastfinaloverride   z.customer-nutrition-onboarding-start-guide.htmlr   GUIDEc                  ,    e Zd ZU ded<   ded<   ded<   y)ReadyBoundaryboolcustomer_enabledadaptive_activationdelivery_enabledN__name__
__module____qualname____annotations__     a/home/cube/projects/richard/traning coach/tests/test_customer_nutrition_onboarding_start_guide.pyr   r      s    r   r   c                  ,    e Zd ZU ded<   ded<   ded<   y)RecoveryContractr   latest_card_onlyrepeat_tapsstrescalate_toNr   r   r   r   r   r      s    r   r   c                  h    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   y)GuideContractr   versionaudiencez	list[str]rolesflowr   ready_boundarysafety_holdswithdrawal_phraser   recovery
pii_policyNr   r   r   r   r"   r"      s4    LM
O!!Or   r"   c                  b     e Zd Zd fdZe	 	 	 	 	 	 dd       Zedd       Zedd       Z xZS )	GuideParserc                j    t         |           t               | _        g | _        g | _        d| _        y )NF)super__init__settags
attributescontract_chunks_in_contract)self	__class__s    r   r0   zGuideParser.__init__)   s.    !e	02*,"'r   c                    |D ci c]  \  }}||xs d }}}| j                   j                  |       | j                  j                  |       |dk(  r|j	                  d      dk(  rd| _        y y y c c}}w )N scriptidzcustomer-guide-contractT)r2   addr3   appendgetr5   )r6   tagattrskeyvalue
normalizeds         r   handle_starttagzGuideParser.handle_starttag0   su     :??:3c5;B&
?		cz*(?z~~d37PP $D  Q? @s   A3c                8    |dk(  r| j                   rd| _         y y y )Nr:   F)r5   )r6   r?   s     r   handle_endtagzGuideParser.handle_endtag<   s     (?t00 %D  1?r   c                T    | j                   r| j                  j                  |       y y )N)r5   r4   r=   )r6   datas     r   handle_datazGuideParser.handle_dataA   s$      ''- r   returnNone)r?   r   r@   zlist[tuple[str, str | None]]rK   rL   )r?   r   rK   rL   )rH   r   rK   rL   )	r   r   r   r0   r
   rD   rF   rI   __classcell__)r7   s   @r   r-   r-   '   s`    ( 	%	% ,	% 
		% 	% & & . .r   r-   c                 v   t         j                  }  |        }|st        j                  d      dz   dt	        j
                         v st        j                  t               rt        j                  t               ndt        j                  |       t        j                  |      dz  }t        t        j                  |            d x} }t         j                  d      }t               }|j                  |       t        t        t        j                   dj#                  |j$                                    }|||fS )Nz"customer-only guide does not existzD
>assert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.is_file
}()
}r   )py0py2py4zutf-8)encodingr9   )r   is_file
@pytest_ar_format_assertmsg@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation	read_textr-   feedr   r"   jsonloadsjoinr4   )@py_assert1@py_assert3@py_format5sourceparsercontracts         r   
load_guiderg   G   s    ==@=?@?@@@@@@@@@5@@@5@@@=@@@?@@@@@@__g_.F]F
KK

27761123H 68##r   c                 r	   t               \  } }}|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	}||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	g}||k(  }|slt        j                  d|fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t	        t        j
                  |            d x}x}}|d   }g 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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}}|j                  D ch c]  }d|v r|j                  d       }	}d	h}|	|k  }
|
st        j                  d|
fd|	|f      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}
}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 c c}w )Nr#   zcustomer-nutrition-start-v1==z%(py1)s == %(py4)spy1rQ   assert %(py6)spy6r$   customerr%   r&   )zprivacy-v1-consentz&baseline-and-restriction-questionnairezcustomer-attestationzhuman-safety-review-waitreadyzexplicit-operator-activationr'   F)r   r   r   z	data-role<=)z%(py0)s <= %(py3)s	role_tabs)rO   py3assert %(py5)spy5ztrainer-workflow)not in)z%(py1)s not in %(py3)srd   rm   ru   zowner-workflow)rg   rT   _call_reprcomparerY   rZ   r[   r3   r>   rV   rW   rX   )rd   re   rf   @py_assert0rb   @py_assert2rc   @py_format7r3   rt   ra   @py_format4@py_format6s                r   2test_customer_guide_contains_complete_current_flowr   S   so   )|FFHI?"??"?????"???????"????????J-:-:----:------:-------G,,,,,,,,,,,,,,,,,,,F                          $% !$!* % *   	% *   	 &   	*     	  !+++J*$ 	{#+  
 $$9$$$$9$$$$$$9$$$9$$$$$$$$$$+V++++V+++++++++V+++V+++++++)6))))6)))))))))6)))6)))))))s   $R4c                 ,   t               \  } } }|d   }g 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	}||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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}}y )Nr(   )underagezimplausible-measurementzunsafe-goalzunknown-restrictionzmedical-condition
medicationri   rk   rl   rn   ro   r)   u)   서비스 중단 및 동의 철회 요청r*   TFz
room-owner)r   r   r    )rg   rT   rz   rY   rZ   r[   )_rf   r{   rb   r|   rc   r}   s          r   0test_customer_guide_explains_safety_and_recoveryr   p   sz   \NAq(N#  ( # (   # (    $   (       '(W,WW(,WWWWW(,WWWW(WWW,WWWWWWWWJ  #$  $   	 $   	     	$     	  r   c                    t               \  } }}t        j                  }d} |||       }|sddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}x}}t        j                  }d} |||       }|sddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}x}}h d}|j                  }||k  }	|	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}|| 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   }d}||k(  }	|	slt        j                  d|	fd||f      t        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            d x}x}	}t        j                  }d} |||       }| }|sddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}x}x}}t        j                  }d } |||       }| }|sddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}x}x}}t        j                  }d!} |||       }| }|sddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}x}x}}t        j                  }d"} |||       }| }|sddt        j                         v st        j                  t              rt        j                  t              ndt        j                  |      t        j                  |      dt        j                         v st        j                  |       rt        j                  |       ndt        j                  |      dz  }t        t        j                  |            d x}x}x}}y )#Nz<html[^>]+lang=[\"']ko[\"']zQassert %(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.search
}(%(py4)s, %(py5)s)
}rerd   )rO   rP   rQ   rw   py7z8<meta[^>]+name=[\"']viewport[\"'][^>]+width=device-width>   navmainfooterheaderrr   )z,%(py1)s <= %(py5)s
{%(py5)s = %(py3)s.tags
}re   )rm   ru   rw   zassert %(py7)sr   z@media (max-width:)in)z%(py1)s in %(py3)sry   rv   rw   zmin-height: 44pxzprefers-reduced-motion: reducezoverflow-x: clipr+   zno-example-personal-datari   rk   rl   rn   ro   z\b01[016789]-\d{3,4}-\d{4}\bzUassert not %(py7)s
{%(py7)s = %(py2)s
{%(py2)s = %(py0)s.search
}(%(py4)s, %(py5)s)
}z[\w.+-]+@[\w.-]+\.[A-Za-z]{2,}z*<(?:script|img)[^>]+(?:src)=[\"']https?://z<link[^>]+href=[\"']https?://)rg   r   searchrV   rW   rT   rX   rY   rZ   r[   r2   rz   )rd   re   rf   ra   rb   @py_assert6@py_format8r{   @py_assert4r|   r   r~   rc   r}   @py_assert8@py_format9s                   r   (test_customer_guide_is_mobile_accessibler      s!   )|FFH99<3<93V<<<<<<<<2<<<2<<<9<<<3<<<<<<V<<<V<<<<<<<<<<99 C9C                   	D     	   	        /=&++=.+====.+===.======&===&===+=======)6))))6)))))))))6)))6)))))))''''''''''''''''''''''''+5+v5555+v555+555555v555v5555555''''''''''''''''''''''''L!?%??!%?????!%????!???%????????yyA8Ay8&AAAAAAAAAAArAAArAAAyAAA8AAAAAA&AAA&AAAAAAAAAAyyC:Cy:FCCCCCCCCCCCrCCCrCCCyCCC:CCCCCCFCCCFCCCCCCCCCCyyOFOyFOOOOOOOOOOOrOOOrOOOyOOOFOOOOOOOOOOOOOOOOOOOyyB9By96BBBBBBBBBBBrBBBrBBByBBB9BBBBBB6BBB6BBBBBBBBBBr   )rK   z&tuple[str, GuideParser, GuideContract]rJ   )!
__future__r   builtinsrV   _pytest.assertion.rewrite	assertionrewriterT   r^   r   html.parserr   pathlibr   typingr   r   r   r	   r
   __file__resolveparentsr   r   r   r   r"   r-   rg   r   r   r   r   r   r   <module>r      s    "    	 "  : : 	N$$Q'67 u I y 	I 	 .* . .>	$*:&Cr   